We have developed a runtime package, called TreadMarks, that provides a shared memory image to processes executing on different workstations. The package is relatively portable, and runs on most common Unix platforms (DEC, HP, IBM, Intel, SGI, and SUN). No kernel modifications or special privileges are required to run TreadMarks programs. C, C++, and Fortran are supported, using standard compilers and linkers.
While the appeal of shared memory programming has been well known for some time, early software implementations have suffered from poor performance due to excessive communication. We have developed a number of techniques to address the communication problem. In this talk I will discuss the two principal techniques: lazy release consistency and multiple-writer protocols, and contrast them to the sequential consistency and single-writer protocols used in conventional systems.
I will demonstrate the programmability and efficiency of TreadMarks by discussing the parallelization of a couple of applications, one from operations research (mixed integer programming) and one from computational biology (genetic linkage analysis). The latter was recently used in the discovery of a linkage for Parkinson's disease by researchers at NIH.
Please note that everyone is invited and welcome to attend the seminars in this series