Welcome to VOMP (VMS based OpenMP)
Introduction and Overview
VOMP is a VMS implementation of OpenMP runtime functionality, embedded into C. It includes the function of the "parallel" pragma, and the "for" pragma, but not the compiler related scoping, which has to be done by hand in the application. The OpenMP synchronization constructs have also been implemented.
The VOMP functionality has been merged into the VSs language, so that VSs has all the functionality of both StarSs and VOMP.
Development time was 22 hours, including design, implementation, and testing. The most difficult challenge was understanding the nature of OpenMP, which mixes thread concepts with task concepts, giving it a hybrid mental model and hybrid runtime implementation.
VOMP's runtime outperforms the standard OpenMP libGomp runtime, especially on servers with multiple sockets. On a 4 socket by 4 core each AMD machine, VOMP is 75% better than standard OpenMP. A paper to be submitted to PPoPP 2013 will be added shortly, which shows plots comparing VOMP to OpenMP, as well as several other VMS implemented languages.