Jak wdrażać współbieżne algorytmy i technologie
Różnica pomiędzy sekwencyjnością,
Dlaczego w ogóle warto się tym zajmować?
Ponieważ Czy trudno zrównoleglić realizowane funkcje?
Czasami jest to prosteJeśli zadanie polega na skompilowaniu kodu źródłowego, to jak najbardziej kompilacja każdego pliku może być zrealizowana niezależnie. Zrównoleglenie takiej funkcjonalności jest więc zadaniem trywialnym.
Rzadko jednak mamy do czynienia
Projektuj rozwiązania skalowalne!
Przygotowując współbieżną implementację swojej aplikacji nie myśl, że dysponujesz dwoma, czy czterema rdzeniami. Myśl, że jest ich 100,Nie rób tego tak, jak to zrobili producenci gier. Aby jak najszybciej dostosować
istniejące oprogramowanie do procesorów wielordzeniowych uruchomili przetwarzanie
grafiki
Jakich narzędzi potrzebuję?
W zasadzie każdy wielozadaniowy system operacyjny dostarcza mechanizmu obsługi wątków. Staraj się jednak unikać rozwiązań charakterystycznych tylko dla jednego systemu operacyjnego (chyba, że jesteś ukierunkowany na tworzenie oprogramowania wyłącznie na ten system). Dobrym rozwiązaniem jest na przykład wykorzystanie standardu POSIX ThreadsJeżeli jednak chcesz się całkowicie odciąć od bezpośredniego zarządzania
pojedynczymi wątkami, to wykorzystaj standard
Warto również zapoznać się
Pamiętaj, że współczesne procesory, poza kilkoma rdzeniami oferują również instrukcje typu SIMD (Single Instruction Multiple Data). Są to rozszerzenia, które pozwalają na wykonywanie operacji wektorowych. Spróbuj je wykorzystać, gdyż mogą znacznie podnieść wydajność Twojego systemu.
Zwróć też uwagę na ofertę gotowych bibliotek, które pozwalają na wykonywanie
określonych funkcji