Mam kilka komputerów wielordzeniowych połączonych siecią Infiniband. Chciałbym mieć pewne obliczenia o małej latencji na puli pamięci współdzielonej, ze zdalnymi operacjami atomowymi. Wiem, że RDMA jest drogą do zrobienia. Na każdym węźle rejestrowałbym region pamięci (i domenę ochrony) w celu udostępniania danych.Udostępnianie pamięci RDMA
Przykłady RDMA online często koncentrują się na pojedynczym połączeniu między serwerem jednowątkowym a klientem jednowątkowym. Teraz chciałbym mieć proces wielowątkowy na każdym węźle Infiniband. Ja bardzo zaskoczony o następujących ...
Ile kolejka pary należy przygotować w każdym węźle, dla klastra z n a m węzłów nitek łącznie? Aby być bardziej konkretnym, czy wiele wątków na tym samym węźle może mieć tę samą parę kolejek?
Ile kolejek ukończenia należy przygotować na każdym węźle? Będę miał wiele wątków wydających zdalne operacje odczytu/zapisu/cas dla każdego węzła. Jeśli mieliby udostępnić wspólną kolejkę ukończenia, zdarzenia zakończenia zostaną pomieszane. Jeśli wątki mają własne oddzielone kolejki zakończenia, będzie ich naprawdę dużo.
Czy sugerujesz, abym miał jakiekolwiek istniejące biblioteki zamiast pisać to oprogramowanie? (hmm, czy powinienem napisać jeden i otworzyć go? :-)
Dziękuję za uprzejme sugestie.
A kod źródłowy par kolejek (QP), kolejka uzupełniania (CQ) i udostępnione kolejki odbiorcze (SRQ) muszą pisać własne lub czy mogę przygotować ich implementację (jako najlepszą praktykę) i gdzie mogą brać? – Alex