За прошедшую неделю Хабр пополнился несколькими статьями об игре «Жизнь».
Что ж, тогда я поделюсь своей работой на эту тему.
Предисловие
Прошлым летом мне представилась возможность посетить летнюю школу по параллельному программированию, проводимую НГУ.В рамках школы каждый студент должен был подготовить проект по одной из тем, обсуждаемых на лекциях.
Я заинтересовался клеточными автоматами.
Моя первая ассоциация при словосочетании «клеточный автомат» — это именно «Жизнь».
Я понимал, что никому не будет интересно наблюдать за живущими на экране черными клетками.
А это слишком просто для такого проекта.
Необходимо было придумать что-то принципиально новое.
Я решил расширить диапазон своих мыслей и выйти за рамки двухмерного пространства.
Буквально.
Я подумал, а почему бы не сделать эту игру трехмерной? Ведь это гораздо интереснее!
ЭНажмите 1. Клеточный автомат.
Думаю, каждый здесь (или почти каждый) представляет себе клеточный автомат. Поэтому не будем углубляться в теорию, а сразу перейдем к практике.Единственное, что отличало этот клеточный автомат от самого примитивного, это необходимость распараллеливания вычислений.
В будущем, правда, добавится еще кое-что, но не будем пока об этом.
Для наших целей клеточный автомат (далее КА) должен быть синхронным.
К счастью, даже при параллельной реализации алгоритма это не создает никаких неудобств.
При работе с OpenMP достаточно просто поместить в блок #pragma omp for {} цикл, вычисляющий значение CA. Что-то вроде этого
Теги: #жизнь #opengl #C++ #Параллельное программирование #клеточный автомат #C++ #Алгоритмы #Параллельное программирование#pragma omp parallel shared(Temp, Space, Size) private(Num_of_nbr, x, y, z)
-
«Тайный Санта» Для Стартапов
19 Oct, 24 -
Конференции, Которые Ждут Нас В 2015 Году
19 Oct, 24 -
Станут Ли Гонки На Супердронах Суперспортом?
19 Oct, 24 -
Портативный Сабвуфер Для Macbook.
19 Oct, 24 -
Futureshorts: Лучшее
19 Oct, 24 -
Офисы Горячего Будущего
19 Oct, 24