Parallella program skrivna i MPI har i stor utsträckning använts för att utveckla högpresterande program på olika plattformar. På grund av en begränsning av MPI beräkningsmodell, konventionella MPI implementationer på delade minnesmaskiner kartlägga varje MPI nod till en OS-process, som kan lida allvarlig prestandanedbrytning i närvaro av multiprogramming. Detta papper studerar sammanställa-tid och körtid tekniker för att förbättra prestanda portabilitet av MPI-kod som körs på multiprogrammerade delade minnesmaskiner. De föreslagna teknikerna gör det möjligt att utföra MPI-noder på ett säkert och effektivt sätt som trådar. Compile-time transformation eliminerar globala och statiska variabler i C-kod med hjälp av nodspecifika data. Runtime-stödet innehåller ett effektivt och bevisligen korrekt kommunikationsprotokoll som använder låsfri datastruktur och drar nytta av adressutrymmesdelning mellan trådar. Experimenten på SGI Origin 2000 visar att vår MPI-prototyp kallad TMPI med de föreslagna teknikerna är konkurrenskraftig med SGI:s inhemska MPI-implementation i en dedikerad miljö, och att den har betydande prestandafördelar i en multiprogrammerad miljö.
TMPI REF är optimerad för utförande på delade minnesmaskiner.
Program transformation and runtime support for threaded MPI execution on shared-memory machines
{'venue': 'TOPL', 'journal': None, 'mag_field_of_study': ['Computer Science']}