multiprocessor shared-memory programming parallel portable system operating multiprocessor