Wierzę, że ta odpowiedź jest bardziej poprawna niż istniejące odpowiedzi i ich edytowanie zmieniłoby ich istotę. Próbowałem linkować do różnych źródeł lub stron wikipedii, aby inni mogli potwierdzić poprawność.
Współbieżność: właściwość systemu, która umożliwia wykonywanie zadań programu, algorytmu lub problemu poza kolejnością lub w częściowej kolejności bez wpływu na końcowy wynik 1 2 .
Prostym tego przykładem są kolejne dodatki:
0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45
Ze względu na przemienną właściwość dodawania kolejność tych elementów można zmienić bez wpływu na poprawność; następujący układ da tę samą odpowiedź:
(1 + 9) + (2 + 8) + (3 + 7) + (4 + 6) + 5 + 0 = 45
Tutaj pogrupowałem liczby w pary, które sumują się do 10, dzięki czemu łatwiej jest mi znaleźć prawidłową odpowiedź w mojej głowie.
Obliczenia równoległe: rodzaj obliczeń, w którym wiele obliczeń lub wykonywanie procesów jest przeprowadzanych jednocześnie 3 4 . Zatem obliczenia równoległe wykorzystują właściwość współbieżności do wykonywania wielu jednostek programu, algorytmu lub problemu jednocześnie.
Kontynuując przykład kolejnych dodań, możemy wykonywać różne części sumy równolegle:
Execution unit 1: 0 + 1 + 2 + 3 + 4 = 10
Execution unit 2: 5 + 6 + 7 + 8 + 9 = 35
Następnie na koniec sumujemy wyniki każdego pracownika, aby uzyskać 10 + 35 = 45
.
Ponownie, ta równoległość była możliwa tylko dlatego, że kolejne dodania mają właściwość współbieżności.
Współbieżność może być jednak wykorzystywana nie tylko przez równoległość. Rozważ pierwszeństwo w systemie z jednym rdzeniem: przez pewien czas system może robić postępy w wielu uruchomionych procesach, nie kończąc żadnego z nich. Rzeczywiście, twój przykład asynchronicznych operacji we / wy jest częstym przykładem współbieżności, która nie wymaga równoległości.
Zamieszanie
Powyższe jest stosunkowo proste. Podejrzewam, że ludzie się mylą, ponieważ definicje słownika niekoniecznie pasują do tego, co opisano powyżej:
- Współbieżne: występujące lub występujące jednocześnie lub obok siebie 5 .
- Współbieżność: fakt, że dwa lub więcej zdarzeń lub okoliczności dzieje się lub istnieje w tym samym czasie Od wyszukiwania w Google: „zdefiniuj: współbieżność” .
Słownik definiuje „współbieżność” jako fakt występowania, podczas gdy definicja w języku obliczeniowym jest utajoną właściwością programu, właściwości lub systemu. Choć powiązane te rzeczy nie są takie same.
Osobiste rekomendacje
Zalecam użycie terminu „równoległy”, gdy jednoczesne wykonanie jest zapewnione lub oczekiwane, i użycie terminu „współbieżnego”, gdy nie jest pewne lub nieistotne, czy zostanie zastosowane jednoczesne wykonanie.
Dlatego opisałbym symulowanie silnika odrzutowego na wielu rdzeniach jako równoległy.
Makefiles opisałbym jako przykład współbieżności. Pliki makefile określają zależności każdego celu. Gdy cele zależą od innych celów, powoduje to częściowe uporządkowanie. Gdy relacje i przepisy są kompleksowo i poprawnie zdefiniowane, ustanawia to właściwość współbieżności: istnieje częściowa kolejność, dzięki której kolejność niektórych zadań może zostać zmieniona bez wpływu na wynik. Ponownie, tę współbieżność można wykorzystać do budowania wielu reguł jednocześnie, ale współbieżność jest własnością Makefile, niezależnie od tego, czy stosuje się równoległość, czy nie.