Высокопроизводительные вычислительные системы: применения в биологии и практические аспекты решения некоторых задач
ВВЕДЕНИЕ: Высокопроизводительные вычисления в биологических науках
MDGRAPE, специализированный Компьютер для молекулярной динамики Производительность ~ 1000 TFLOP ASC Q, Los Alamos National Laboratory ~ 30 TFLOP Суперкомпьютеры используются для моделирования природных молекулярных машин >Выяснение фундаментальных механизмов работы живой клетки >Разработка лекарственных препаратов >Разработка искусственных молекулярных машин (ДНК- компьютеры, нанороботы…)
Blue Gene/L Моделирование систем нейронов и фрагментов мозга > Выяснение принципов функционирования мозга > Механизмы и способы лечения расстройств работы мозга > «Нейронные протезы»
Часть первая Сам себе суперкомпьютер
GPU vs CPU
Лучшее соотношение производительность/потребляемая мощность
Немного о задаче … 1X 2X 3X 4X 5X 6X …X Атом 1 Атом 2Атом 3 Номер атома
Архитектура графического процессора SIMD – архитектура сложить возвести в квадрат
Разделяемая память и кэш процессора Регистры процессора Кэш ОЗУ Глобальная память Разделяемая память Регистры CPU GPU тактов На чтение или запись значения в глобальную память 2 такта на доступ к разделяемой памяти или регистрам
Примеры простых алгоритмов I,j – номера атомов Пока i
Сравнение производительности
Лучше, выше, быстрее
Как выглядит молекулярная динамика (молекула белка в растворе) атомов. Траектория рассчитана программой GPAMP на видеокарте GeForce 8800 GTS
Часть вторая распределенные вычисления с использованием готового программного пакета
Немного о задаче – сайт-специфичная химия для молекулярного производства Особенности : >Используется готовый программный пакет >Значительное число элементов задачи может считаться независимо друг от друга К настоящему времени произведено более процессор/часов расчетов ~ 17 процессор/лет
Выбор программного пакета и аппаратной конфигурации Тип процессора (программный пакет должен поддерживать и желательно быть оптимизирован для имеющегося оборудования) Производительность и масштабируемость (скорость расчетов в различных пакетах часто различается в десятки раз!) Метод распараллеливания вычислений Стоимость (коммерческий пакет не всегда работает быстрее бесплатного) Доступность исходного кода (возможность изменить программу для своих нужд) Поддерживаемая ОС Факторы взаимосвязаны между собой сложным образом
Ориентировочная производительность различных процессоров
Особенности вычислений в многопользовательских кластерных системах Системы управления задачами: MVS -PBS -SLURM Настройки системы управления задачами на конкретном кластере может не подходить для решения некоторых задач Загруженный кластер может дать меньшую производительность чем один современный компьютер Производительность, GFLOP
Почему важно выбрать правильную программу? Скорость вычислений в различных программных пакетах различается в десятки, а иногда в сотни раз. Факторы, влияющие на быстродействие программы: * Алгоритм Язык программирования Оптимизация под конкретный процессор (использование SSE) Двойная/одинарная точность Компилятор Специализированные библиотеки функций Метод распараллеливания вычислений
Распределенные вычисления в локальной сети и Интернет – GRID системы Готовые решения: BOINC Condor Alchemi GRID (для.Net приложений) Готовые решения как правило требуют модификации исходного кода программы, что для готовых пакетов часто невозможно Проблема возобновления расчетов в готовом пакете Программа исполняется в фоновом режиме на рабочих и домашних ПК, обмен данными через Интернет Компьютер в GRID системе обычно работает в режиме 8*5
Как создать свой клиент для распределенных вычислений Программа, для проведения расчетов из готового пакета Модуль управления программой для расчетов Анализ результатов, сжатие данных TCP/IP клиент Передача данных через сеть Сервер База данных
Заключение : Как повысить производительность вычислений: Использовать специализированные аппаратные архитектуры (GPU, FPGA, MDGRAPE, CELL…). Выбрать более эффективный алгоритм (сменить используемый программный пакет). Использовать новые многоядерные процессоры вместо старых кластеров Использовать распределенные вычисления