Я искал в Интернете, но я все еще очень смущен этой темой. Может ли кто-нибудь объяснить это более четко? Я исхожу из опыта Aerospace Engineering (а не из Computer Science), поэтому, когда я читаю онлайн о OpenMP/CUDA/etc. и многопоточность. Я действительно не понимаю много того, что говорится.
В настоящее время я пытаюсь распараллелить внутреннее программное обеспечение CFD, написанное в FORTRAN. Это мои сомнения:
-
OpenMP использует рабочую нагрузку, используя несколько потоков из CPU. Может ли он использоваться, чтобы позволить графическому процессору получить часть работы?
-
Я читал о OpenACC. Это похоже на OpenMP (простой в использовании)?
Я также читал о CUDA и ядрах, но у меня нет большого опыта параллельного программирования, и у меня нет ни малейшего представления о том, что такое ядро.
- Есть ли простой и переносимый способ поделиться моей рабочей нагрузкой с GPU, для FORTRAN (если OpenMP этого не делает, а OpenACC не переносится)?
Можете ли вы дать мне ответ типа "для чайников"?