Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Отличная статья!
По опыту — все упирается именно в проверку «нет ли уже связи с этой частицей»
parents[i] = j;
parents[j] = i;if ((parents[i] != j) && (parents[j] != i))второй момент — это блокировки атомов для совершения операции, это дорого в коллайдере, без этого почти можно обойтись, если всегда формировать связь ОТ атома с меньшим id К атому с большим id (исключаем A->B B->A гонку), и отдельно атомарно счетчик валентностей обрабатывать
ну и, формирование связей чаще всего выгодно обрабатывать реже чем каждый кадр — раз в N шагов симуляции
Перенос молекулярной динамики на CUDA. Часть III: Внутримолекулярное взаимодействие