Trzema głównymi elementami API są: dyrektywy kompilatora, funkcje biblioteki uruchomieniowej oraz zmienne środowiskowe.
producent dostarcza dane, konsument odbiera dane, obaj używają wspólnego bufora danych, dostęp do bufora musi być odpowiedni zsynchronizowany.
iloraz czasu wykonania dowolnej implementacji algorytmu równoległego dla zadania o wielkości n na jednym procesorze do analogicznego czasu uzyskanego dla n procesorów.
iloraz czasu wykonania optymalnej implementacji algorytmu równoległego dla zadania o wielkości n na jednym procesorze do analogicznego czasu uzyskanego dla n procesorów
iloraz czasu wykonania optymalnej implementacji algorytmu sekwencyjnego dla zadania o wielkości n do czasu wykonania algorytmu równoległego uzyskanego dla n procesorów.
iloraz czasu wykonania optymalnej implementacji algorytmu sekwencyjnego dla zadania o wielkości n na jednym procesorze do analogicznego czasu uzyskanego dla n procesorów.
przypadku w którym wątki/procesy rywalizują o dostęp do wspólnego zasobu a każdy z nich potrzebuje tego zasobu do działania
przypadku, w którym wątki/procesy o różnych priorytetach (filozofowie) komunikują się za pomocą wspólnego bufora danych
przypadku w którym wątki/procesy rywalizują o dostęp wspólnych zasobów a każdy z nich potrzebuje więcej niż jednego zasobu do działania
c) w przypadku w którym równorzędne wątki/procesy (filozofowie) komunikują się za pomocą wspólnego bufora danych
sytuacja, w której wynik operacji realizowanej przez co najmniej dwa wątki zależy od względnego porządku wykonania operacji przez te wątki
sytuacja, w której wynik operacji realizowanej przez co najmniej dwa wątki zależy od tego który wątek zakończy się wcześniej.
) sytuacja, w której wynik operacji realizowanej przez co najmniej dwa wątki zależy od tego który wątek zakończy się później
kod, który odwołuje się do zasobu współdzielonego i może być wykonywany tylko przez jeden wątek w danym momencie
dotyczy zapewnienia takiej synchronizacji aby jeden klient był obsługiwany przez jednego fryzjera oraz aby klienci poprawnie sprawdzali stan poczekalni.
przypadku, w którym wątki/procesy o różnych priorytetach (fryzjerzy – klienci) komunikują się z a pomocą wspólnego bufora danych
przypadku, w którym dostępna moc obliczeniowa przewyższa potrzeby i należy zaimplementować właściwe usypianie wątków
) przyspieszenie, które można uzyskać jest ograniczone i zależy od udziału części sekwencyjnej w programie