MPI-2-standarden har noggrant specificerat interaktionen mellan MPI och användarskapade trådar. Målet med denna specifikation är att tillåta användare att skriva multitrådade MPI-program samtidigt som MPI-implementeringar kan leverera hög prestanda. En enkel läsning av säkerhetsspecifikationen för tråden avslöjar dock inte vilka konsekvenser den har för ett genomförande och vilka genomförandeorgan som måste vara medvetna om (och försiktiga). I den här artikeln beskriver och analyserar vi vad MPI-standarden säger om gängsäkerhet och vad det innebär för en implementering. Vi klassificerar MPI-funktionerna baserat på deras gängsäkerhetskrav och diskuterar flera frågor att ta hänsyn till vid genomförandet av gängsäkerhet i MPI. Vi använder exemplet med att skapa nya sammanhangsidentifikationer (som krävs för att skapa nya kommunikatörer) för att visa hur en enkel lösning för det enkelgängade fallet inte naturligt sträcker sig till det flertrådiga fallet och hur en naiv trådsäker algoritm kan vara dyr. Vi presenterar sedan en algoritm för att generera sammanhangsidentifierare som fungerar effektivt i både enkelgängade och flertrådiga fall.
Vi tidigare övervägt MPI genomförande tråd säkerhetskrav REF, kort rörande MPI referens räkna semantik.
Thread safety in an MPI implementation: Requirements and analysis
{'venue': 'Parallel Computing', 'journal': None, 'mag_field_of_study': ['Computer Science']}