Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Офигенно, спасибо огромное. Те посты, за которые ценится Хабр.
if (blockIdx.x == 0) { md->engElecField = 0; } ... if (!threadIdx.x) // 0th thread { atomicAdd(&md->engElecField, shEngElField); }
atomicAdd(&md->specAcBox[type].y, 1);Входной параметр step равен количеству частиц (атомов) обрабатываемых одним потоком.
Так делать нельзя… обнулиться может уже после того, как какие то другие блоки добавят свое значение...
Очень плохая идея. Если step > 1, получается плохой патерн доступа к памяти в warp'е — потоки обращаются к памяти не последовательно, а с шагом в step
y — это описка? Везде вроде x.
Так делать нельзя… обнулиться может уже после того, как какие то другие блоки добавят свое значение…
согласен, не подумал об этом, поправил в кодах, добавил UPD
if (!blockIdx.x)
if (!threadIdx.x)
{
md->engKin = md->teKin;
}
k = sqrt(md->teKin / md->engKin);Все равно остались такие же места в temp_scale() и tstat_nose()/поправил, в temp_scale убрал только в начале, в конце — неважно, какой из блоков это сделает.
не все соседи, а только частицы в той ячейке, в которой она находится и в соседних
при использовании алгоритмов cell list так и происходит
да в этом случае для каждой пары частиц компонент сил будет вычисляться дважды, но это ничто по сравнению с избавлением от atomic'ов
думаете, что два раза считать корни, экспоненты и т.д. быстрее, чем один раз, но с атомик?
поправил, в temp_scale убрал только в начале, в конце — неважно, какой из блоков это сделает.
думаете, что два раза считать корни, экспоненты и т.д. быстрее, чем один раз, но с атомик?
смотрели ли на OpenMM и AMBER?Из исходников я ковырял только DL_POLY и Moldy. Честно говоря, я бы хотел, чтобы распараллеливание мне сделали специалисты в этом деле. И я даже общался с математиками на этот счет и обещал какое-то вознаграждение, но дело как-то не пошло и я решил сделать всё сам. Об общих вычислениях на графических процессорах я уже был наслышан, поэтому сразу стал пробовать CUDA. Если есть ссылки на статьи с исходниками или алгоритмами — буду очень признателен.
механизма электропроводности в ванадатных стеклах.И как, сработало?
Идея простая: в классической молекулярной динамике типы частиц, валентные связи и углы задаются постоянными, на все время моделирования.
LAMMPS это не классическая МД?Скорее «продвинутая» или «расширенная».
Вопрос не по теме. Вам приходилось видеть программы для моделирования радиационной химии? Именно МД? Ищу уже года два.
Забыл, спасибо за статью. Вдохновляет.
Перенос молекулярной динамики на CUDA. Часть I: Основы