Сложение векторов — безделка или...?

Опубликовано апреля 13, 2018 в Технология CUDA

Мы не хотим сказать, что сложение векторов — безделка, но следующий пример удовлетворит тех, кто жаждет видеть впечатляющие примеры параллельного программирования на CUDA С.

Мы покажем, как нарисовать часть фрактала Джулиа. Для тех, кто не знает, сообщим, что фрактал Джулиа — это граница некоторого класса функций комплексных переменных.

Это, конечно, не идет ни в какое сравнение с такими серьезными задачами, как сложение векторов или умножение матриц, однако почти для всех значений параметров функции граница образует фрактал — одну из самых захватывающих и красивых математических диковинок.

Вычисления, которые нужно проделать для генерации фрактала, очень просты. По сути дела, речь идет о простой рекуррентной формуле для точек на комплексной плоскости. Точка не является частью фрактала, если в процессе рекуррентных вычислений по этой формуле получается расходящаяся последовательность. Иными словами, если последовательность значений, образующихся в результате повторного применения формулы, стремится к бесконечности, то точка не принадлежит фракталу. Наоборот, если последовательность остается ограниченной, то точка принадлежит фракталу.

С точки зрения вычислений, рекуррентная формула очень проста; она приведена в формуле:

Сложение векторов - безделка или...?

Вычисление по формуле выше, сводится к возведению текущего значения в квадрат и прибавлению константы.