§ 5. Гидродинамика сглаженных частиц на видеокарте

Задания

  1. Напишите программу, которая симулирует поведение жидкости на видеокарте. Основные функции программы (compute_density_and_pressure, compute_forces, compute_positions) должны быть реализованы на видеокарте с помощью OpenCL. Также должны быть соблюдены условия ниже.
  2. Измерьте время работы кода (колонка Frame duration) на видеокарте и на процессоре и постройте таблицу или график зависимости времени работы основного цикла от количества частиц.

Условия

Исходный код

module load gpc-2021
git clone https://courses.igankevich.com/gpu-programming/sph.git
cd sph
make
cd build
./sph
No. of particles: 340
      Frame duration   Frames per second
          0.00617959             161.823
          0.00322922             309.672
          0.00646235             154.743
          0.00603049             165.824
          0.00380451             262.846
          0.00424613             235.509
          0.00601255             166.319
          0.00448213             223.108
                 ...                 ...
           0.0043504             229.864

./sph gpu
GPU version is not implemented!

# запуск без монитора (на кластере)
Xvfb :123 -screen 0 800x600x24 &
env DISPLAY=:123 ./sph

# запуск с графическим интерфейсом на кластере
env LD_LIBRARY_PATH=$LIBRARY_PATH vglrun ./sph

Для запуска на кластере вам понадобится графический интерфейс. После его настройки просто введите команду make vglrun.

Пример вывода

Файл out.png
Файл out.png
Файл out.ogv