Я разрабатываю код Решетки Больцмана (гидродинамика) с использованием F #. Сейчас я тестирую код на сервере с 24 ядрами и 128 ГБ памяти. Код в основном состоит из одной основной рекурсивной функции для эволюции во времени и внутри цикла System.Threading.Tasks.Parallel.For для итерации трехмерного пространства. Трехмерное пространство имеет размер 500x500x500, и один цикл занимает вечность :)
let rec timeIterate time =
// Time consuming for loop
System.Threading.Tasks.Parallel.For(...)
Я ожидаю, что сервер будет использовать все 24 ядра, то есть будет использовать 100%. Я наблюдаю, что загрузка составляет от 1% до 30%.
И мои вопросы:
Спасибо за любые предложения.
РЕДАКТИРОВАТЬ: Это не делает ничего разумного, и я надеюсь, что я не внес никаких ошибок, удалив код :)
Файл запуска - ShearFlow.fs, а в нижней части файла -
let rec mainLoop (fA: FArrayO) (mR: MacroResult) time =
let a = LBM.Lbm.lbm lt pA getViscosity force g (fA, mR)