Высокопроизводительные вычислительные системы: применения в биологии и практические аспекты решения некоторых задач ВВЕДЕНИЕ: Высокопроизводительные вычисления в биологических науках Суперкомпьютеры используются для моделирования природных молекулярных машин MDGRAPE, специализированный Компьютер для молекулярной динамики Производительность ~ 1000 TFLOP >Выяснение фундаментальных механизмов работы живой клетки >Разработка лекарственных препаратов ASC Q, Los Alamos National Laboratory ~ 30 TFLOP >Разработка искусственных молекулярных машин (ДНКкомпьютеры, нанороботы…) Моделирование систем нейронов и фрагментов мозга > Выяснение принципов функционирования мозга > Механизмы и способы лечения расстройств работы мозга > «Нейронные протезы» Blue Gene/L Часть первая Сам себе суперкомпьютер GPU vs CPU Лучшее соотношение производительность/потребляемая мощность СКИФ Cyberia Quad Core Xeon 3Ghz GeForce 8800 GTX 0 2 4 6 потребление Вт/ГФЛОП 8 Немного о задаче Атом 1 Атом 3 Атом 2 Номер атома 1 1 2 3 4 5 6 … 2 3 4 5 6 … X X X X X X X Архитектура графического процессора SIMD – архитектура 128 4 сложить 132 73 9 18 2 82 20 возвести 17424 6724 в квадрат 400 Разделяемая память и кэш процессора GPU CPU Регистры процессора Кэш Разделяемая память Регистры Регистры 2 такта на доступ к разделяемой памяти или регистрам 200-300 тактов На чтение или запись значения в глобальную память Глобальная память ОЗУ Примеры простых алгоритмов Для CPU Для GPU I,j – номера атомов I=НомерБлока*ЧислоПотоков+НомерПотока Пока i<число_атомов Цикл Пока j<число_атомов Цикл Если i<>j Тогда F[i]=выч_град(i,j) F[j]=-Fi Пока j<i-1 Цикл F[i]=выч_град(i,j) КонецЦикла j=j+1 КонецЕсли КонецЦикла КонецЦикла i j Пока j<число_атомов Цикл F[i]=выч_град(i,j) КонецЦикла Сравнение производительности 1000 GPU (8800 GTS) 900 AMD Opteron 240 800 IBM PowerPC 970FX 700 t,s 600 500 400 300 200 100 0 0 1000 2000 3000 4000 5000 6000 7000 N 35 30 ускорение 25 20 15 10 AMD Opteron 240 5 IBM PowerPC 970FX 0 0 1000 2000 3000 4000 N 5000 6000 7000 Лучше, выше, быстрее Как выглядит молекулярная динамика (молекула белка в растворе) 35000 атомов. Траектория рассчитана программой GPAMP на видеокарте GeForce 8800 GTS Часть вторая распределенные вычисления с использованием готового программного пакета Немного о задаче – сайт-специфичная химия для молекулярного производства Особенности : >Используется готовый программный пакет >Значительное число элементов задачи может считаться независимо друг от друга К настоящему времени произведено более 150 000 процессор/часов расчетов ~ 17 процессор/лет Выбор программного пакета и аппаратной конфигурации Факторы взаимосвязаны между собой сложным образом Тип процессора (программный пакет должен поддерживать и желательно быть оптимизирован для имеющегося оборудования) Производительность и масштабируемость (скорость расчетов в различных пакетах часто различается в десятки раз!) Метод распараллеливания вычислений Стоимость (коммерческий пакет не всегда работает быстрее бесплатного) Доступность исходного кода (возможность изменить программу для своих нужд) Поддерживаемая ОС Ориентировочная производительность различных процессоров DEC Alpha EV5 IBM PowerPC 970FX Intel Celeron M 340 AMD Opteron 242 Intel Xeon 2.8 Ghz Pentium D 805 Pentium D 820 Core2 Duo E6400 Core2 Duo E6600 0 0,2 0,4 0,6 0,8 1 1,2 Особенности вычислений в многопользовательских кластерных системах Системы управления задачами: Настройки системы управления задачами на конкретном кластере может не подходить для решения некоторых задач MVS -PBS http://www.pbsgridworks.com/ Загруженный кластер может дать меньшую производительность чем один современный компьютер -SLURM https://computing.llnl.gov/linux/slurm/ Intel Xeon Quad (3.0 Ghz) 1 CPU AMD Opteron 242 (1.6 Ghz), 16 CPU 0 20 40 Производительность, GFLOP 60 80 Почему важно выбрать правильную программу? Скорость вычислений в различных программных пакетах различается в десятки, а иногда в сотни раз. Факторы, влияющие на быстродействие программы: * Алгоритм Язык программирования Оптимизация под конкретный процессор (использование SSE) Двойная/одинарная точность Компилятор Специализированные библиотеки функций Метод распараллеливания вычислений Распределенные вычисления в локальной сети и Интернет – GRID системы Программа исполняется в фоновом режиме на рабочих и домашних ПК, обмен данными через Интернет Готовые решения: •BOINC •Condor •Alchemi GRID (для .Net приложений) Готовые решения как правило требуют модификации исходного кода программы, что для готовых пакетов часто невозможно Проблема возобновления расчетов в готовом пакете Компьютер в GRID системе обычно работает в режиме 8*5 Как создать свой клиент для распределенных вычислений TCP/IP клиент Модуль управления программой для расчетов Программа, для проведения расчетов из готового пакета Анализ результатов, сжатие данных Сервер Передача данных через сеть База данных Заключение: Как повысить производительность вычислений: Использовать специализированные аппаратные архитектуры (GPU, FPGA, MDGRAPE, CELL…). Выбрать более эффективный алгоритм (сменить используемый программный пакет). Использовать новые многоядерные процессоры вместо старых кластеров Использовать распределенные вычисления