Параллельные вычисления

Актуальность
Решение многих востребованных задач, таких как компьютерное моделирование, обработка видео, визуализация, распознавание образов, вычислительная биология и химия, сейсмический анализ, прогнозирование временных рядов, финансовый анализ и т.д., требует значительных затрат процессорного времени на выполнение вычислений.
Так, с использованием технологии параллельных вычислений компанией Simmakers разработан программный комплекс для компьютерного моделирования тепловых процессов. В нем численное решение уравнений, описывающих процессы теплопередачи, фильтрации и диффузии на сетке, состоящей из 17 828 087 узлов, рассчитывается за 6 минут на персональном компьютере с графическим ускорителем, поддерживающим CUDA технологию. Ранее такие скорости вычислений были доступны только с использованием суперкомпьютеров.
Особенно это актуально для задач компьютерного моделирования, где постоянно повышаются требования к качеству и детализации трехмерных моделей, описывающих поведение реальных объектов, что, как следствие, приводит к увеличению вычислительных затрат. Не менее актуально распараллеливание вычислительных алгоритмов для систем реального времени, где время работы программы является самым важным критерием. Вообще говоря, пользователь любого программного продукта заинтересован обрабатывать большее количество данных – большее количество записей, пикселей, или использовать физические модели большего масштаба, за меньший промежуток времени.
На сегодняшний день уже не то, что любой персональный компьютер базируется на многоядерном процессоре, несколько вычислительных ядер уже имеют многие планшеты и смартфоны. Все большую популярность завоевывает технология GPGPU (General-purpose graphics processing units) – использование графических ускорителей, оснащенных сотнями вычислительных ядер для выполнения вычислений в различных областях, а не только компьютерной графики. Суперкомпьютеры, которые раньше были доступны только крупным корпорациям, сейчас уже используются небольшими компаниями для решения различных прикладных задач.
Все эти современные тенденции говорят об актуальности использования технологии параллельных вычислений при разработке и совершенствовании программных продуктов любой компании.
Эффективное решение
Компания Simmakers на протяжении многих лет разрабатывает решения по параллелизации вычислений с использованием технологий MPI, OpenMP, CUDA и OpenCL. Мы предлагаем как разработку вычислительных модулей, так и создание полностью готовых программных продуктов для решения различных задач с использованием параллельных технологий под любую архитектуру – от суперкомпьютера до смартфона. Simmakers является партнером компании NVIDIA в области использования графических ускорителей для решения вычислительных задач, что позволяет нам первыми внедрять новые технологии, разработанные NVIDIA.
Так, с использованием технологии параллельных вычислений компанией Simmakers разработан программный комплекс для компьютерного моделирования тепловых процессов. В нем численное решение уравнений, описывающих процессы теплопередачи, фильтрации и диффузии на сетке, состоящей из 17 828 087 узлов, рассчитывается за 6 минут на персональном компьютере с графическим ускорителем, поддерживающим CUDA технологию. Ранее такие скорости вычислений были доступны только с использованием суперкомпьютеров.
В области параллелизации вычислений под графические ускорители, компания Simmakers успешно конкурирует с такими мировыми лидерами, как Dassault Systèmes и ANSYS. К примеру, перенос вычислений с 4-х ядерного центрального процессора на 442 ядра графического процессора в программах компьютерного моделирования этих вендоров SIMULIA Abaqus и ANSYS показывает небольшое сокращение времени расчета – максимум в 3.8 раза. В то же время, выполненное компанией Simmakers распараллеливание численного решения уравнений, используемых в этих программах, под графические процессоры позволило сократить время вычислений более, чем в 10 раз.
Наша компания также имеет большой опыт разработки параллельных алгоритмов для визуализации трехмерных объектов в режиме реального времени (алгоритмы трассировки лучей, вычисления объемов, сортировки объектов, обнаружения столкновений и другие), обработки томографических изображений, распознавании образов, финансовом анализе и многих других областях.
Существует много успешных примеров использования технологии параллельных вычислений для увеличения производительности программных продуктов, и, как следствие, увеличение числа их пользователей. По данным NVIDIA, на финансовом рынке компания Numerix анонсировала технологию параллельных вычислений в новом приложении анализа риска контрагентов и достигла ускорения работы в 18 раз. Более 400 финансовых институтов используют в своей деятельности программное обеспечение Numerix. Почти все основные приложения для работы с видео уже используют CUDA-технологию для ускорения вычислений, включая продукты от Elemental Technologies, MotionDSP и LoiLo. Сейчас CUDA ускоряет AMBER – программу для моделирования молекулярной динамики, которая используется более 60 000 исследователей в академической среде и фармацевтическими компаниями по всему миру для сокращения сроков создания лекарственных препаратов.
Показателем широкого применения GPGPU технологии является постоянный рост использования графических ускорителей в компаниях из списка Fortune 500, таких как Schlumberger и Chevron в энергетическом секторе, а также BNP Paribas в секторе банковских услуг.
Основываясь на многолетнем опыте в разработке и использовании технологии параллельных вычислений, компания Simmakers предлагает услуги по внедрению этой технологии для компаний из различных отраслей. Это позволит повысить вычислительную производительность программных продуктов, что увеличит их конкурентоспособность в современных условиях развития рынка программного обеспечения.
Выгодные инвестиции
Несмотря на то что повышение вычислительной производительности вашего программного продукта потребует определенных затрат, грамотное внедрение технологии параллельных вычислений позволит вывести ваш продукт на качественно новый уровень и существенно повысить отдачу от инвестиций в его разработку.
|
|
|
Компьютерное моделирование |
3D визуализация |
Финансовый анализ |
В результате распараллеливания вычислительных алгоритмов ваш программный продукт для компьютерного моделирования, визуализации, финансового анализа или других задач будет за меньшее время обрабатывать больше информации по сравнению с конкурирующими продуктами. Как следствие, пользователи осознают, что в вашем программном продукте они могут выполнить больше расчетов, проанализировать большее количество различных ситуаций, смогут обработать большее количество данных и, соответственно, получить более качественное решение своей задачи. Соответственно все большее количество пользователей будет переходить на использование вашего программного продукта, и объем вашей выручки будет расти.