Abstrakt. Trots årtionden av forskning har vi inte en tillfredsställande konvergens semantik för något allmänt programmeringsspråk som syftar till att stödja samtidig systemkod. Java Memory Model har visat sig vara osund med avseende på standardkompilatoroptimering, medan C/C++11-modellen är för svag och medger oönskade tunnluftsutföranden. Vårt mål i detta dokument är att formulera detta stora öppna problem så tydligt som möjligt, visa hur det uppstår genom kombinationen av multiprocessor avslappnad-minne beteende och önskan att tillgodose nuvarande kompilator optimeringar. Vi gör flera nya bidrag som var och en belyser problemet, begränsar de möjliga lösningarna och identifierar nya svårigheter. Först ger vi ett positivt resultat, visar i HOL4 att den befintliga axiomatiska modellen för C/C++11 garanterar semantik i följd för enkla rasfria program som inte använder atomer på låg nivå (DRF-SC, ett av de centrala designmålen). Vi beskriver sedan tunnluftsproblemet och visar att det inte kan lösas, utan att begränsa nuvarande kompilatoroptimering, med användning av någon per-kandidat-utförande villkor i stil med C/C++11 modellen. Thin-air avrättningar ansågs vara begränsade till program med hjälp av avslappnade atomer, men vi visar vidare att de återkommer när man försöker integrera konvergensmodellen med mer av C, blanda atomära och icke-atomiska åtkomster, och det också bryter DRF-SC resultat. Vi beskriver sedan en semantik baserad på en explicit operativ konstruktion av out-of-order utförande, vilket ger önskat beteende för tunna luft exempel men avslöjar ytterligare svårigheter med att ta emot befintliga kompilatoroptimeringar. Slutligen visar vi att det finns stora svårigheter att integrera konvergenssemantik med C/C++-begreppet odefinierat beteende. Vi hoppas därigenom kunna stimulera och möjliggöra forskning i denna nyckelfråga.
REF beskriver problemet med tunnluftsutföranden och ger en detaljerad genomgång av litteraturen.