Browse Prior Art Database

VM PARALLEL Environment

IP.com Disclosure Number: IPCOM000036467D
Original Publication Date: 1989-Oct-01
Included in the Prior Art Database: 2005-Jan-29
Document File: 2 page(s) / 15K

Publishing Venue

IBM

Related People

Darema-Rogers, F: AUTHOR [+6]

Abstract

The Virtual Machine Parallel Environment (VMPE) described below provides for the concurrent execution of a single code by multiple VM - userids (processes) sharing (read/write) data, under the VM operating system in a very flexible and low-overhead manner. Benefits provided include: 1. The power of all the processors in a multi-processor S/370 system can be applied to a single application, making it run faster. 2. The effect of having more processors than physically available, can be simulated, providing data on how more highly-parallel systems can be used. 3. Straightforward programming constructs that allow low-overhead task dispatching and very flexible task assignment can be used.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 2

VM PARALLEL Environment

The Virtual Machine Parallel Environment (VMPE) described below provides for the concurrent execution of a single code by multiple VM - userids (processes) sharing (read/write) data, under the VM operating system in a very flexible and low-overhead manner. Benefits provided include:
1. The power of all the processors in a multi-processor

S/370 system can be applied to a single application,

making it run faster.
2. The effect of having more processors than physically

available, can be simulated, providing data on how more

highly-parallel systems can be used.
3. Straightforward programming constructs that allow

low-overhead task dispatching and very flexible task

assignment can be used. This is the major new

capability of VMPE, and makes it suitable for a much

wider variety of problems than other existing systems.

In the following some of the main components in VMPE are briefly discussed.

To enable parallel execution of a code, a number of parallelization techniques have been developed which have been formalized in a set of subroutines to be imbedded in the application code.

The constructs can be divided into two categories:

In the first category are included a set of synchronization operations which one would expect the hardware to implement in a parallel system, such as Fetch- and-Add, Test-and-Set, etc.

In the second category are included a set of higher level subroutines that can be imbedded in the serial code to parallelize loops, force execution of serial parts by one process only, and synchronize processes. The subroutines in this category make use of the primitives, such as the Fetch-and-Add. Another basic subroutine, DAGW, is also used for the virtual machines to perform real timer waits, to obtain more efficient execution.

In addition, the following systems functions have been implemented: a) Each process corresponds to a VM userid. VMPE activity is started by a Dispatcher Virtual Machine (DVM) which autologs the Processing Node Virtual Machines (PNVM's) to execute all the same exec to run a given application code. All PNVM's have the same PROFILE EXEC and are lined to share access to DVM's disks from where they get the exec to run. Any (or all) of the processes can perform IO operations. b) In order to allow sharing of the application data among the processes, standard VM features have been used such as the Unprotected (Writable) Shared Segments (WSSs) and existing VM capabilities such as the LOAD, INCLUDE and GENMOD. These features are used to create an executable load module. In FORTRAN, first the data to be shared by all processes are loaded in the address space where the WSS's will be loaded during execution; subsequently using INCLUDE, the application code, any

1

Page 2 of 2

subroutines and library routines are loaded at the VM starting address of 20K, and an executable load modul...