En pplikation utvecklare har länge insett att skalbar hårdvara och programvara är nödvändiga för parallell skalbarhet i programprestanda. Båda har funnits under en tid i sin lägsta gemensamma nämnare form, och skalbar hårdvara-som fysiskt distribuerade minnen anslutna genom ett skalbart sammanlänkningsnätverk (som en flerstegs sammanlänkning, k-ary n-cube, eller fettträd)-har varit kommersiellt tillgängliga sedan 1980-talet. När utvecklare bygger sådana system utan någon bestämmelse om cachekonsistens är systemen i huvudsak skalbara arkitekturer för "nollorder". De tillhandahåller endast ett skalbart sammanlänkningsnät, och bördan av skalbarhet faller på programvaran. Som ett resultat, skalbar programvara för sådana system finns, på någon nivå, endast i en meddelande-passing modell. Meddelande passerar är den ursprungliga modellen för dessa arkitekturer, och utvecklare kan bara bygga högre nivå modeller ovanpå det. Tyvärr, många i högpresterande datorvärlden implicit anta att det enda sättet att uppnå skalbarhet i parallell programvara är med en messagepassing programmeringsmodell. Detta är inte nödvändigtvis sant. En klass av multiprocessorarkitekturer håller nu på att växa fram som erbjuder skalbart hårdvarustöd för cachekonsistens. Dessa kallas i allmänhet skalbara arkitekturer för delade minnesmultiprocessorer. 1 För SSMP-system är den inhemska programmeringsmodellen delat minne, och meddelandepassage är byggt ovanpå den delade minnesmodellen. När det gäller sådana system är det enkelt att uppnå skalbarhet med hjälp av en gemensam programmeringsmodell. I ett delat minnessystem har varje processor direkt tillgång till minnet av varje annan processor, vilket innebär att den direkt kan ladda eller lagra en delad adress. Programmeraren kan också förklara vissa minnesbitar som privata till processorn, vilket ger en enkel men kraftfull modell för att uttrycka och hantera parallellism i en applikation. Trots dess enkelhet och skalbarhet, många parallella program utvecklare har motstått att anta en delad minnesprogrammering modell av en anledning: portabilitet. Delade systemleverantörer har skapat sina egna egna tillägg till Fortran eller C för parallellutveckling av programvara. Avsaknaden av portabilitet har dock tvingat många utvecklare att anta en bärbar meddelande-passing modell som Message Passing Interface (MPI) eller Parallel Virtual Machine (PVM). I den här artikeln presenteras ett portabelt alternativ till meddelandepassering: OpenMP.
OpenMP REF ] är en allmänt använd modell för parallellisering av sekventiella program på delade minnessystem.
OpenMP : An Industry-Standard API for Shared-Memory Programming
{'venue': 'IEEE Computational Science and Engineering', 'journal': 'IEEE Computational Science and Engineering', 'mag_field_of_study': ['Computer Science']}