250 likes | 470 Views
Высокопроизводительные вычислительные системы: применения в биологии и практические аспекты решения некоторых задач. ВВЕДЕНИЕ: Высокопроизводительные вычисления в биологических науках. Суперкомпьютеры используются для моделирования природных молекулярных машин. MDGRAPE, специализированный
E N D
Высокопроизводительные вычислительные системы: применения в биологии и практические аспекты решения некоторых задач
ВВЕДЕНИЕ: Высокопроизводительные вычисления в биологических науках
Суперкомпьютеры используются для моделирования природных молекулярных машин MDGRAPE, специализированный Компьютер для молекулярной динамики Производительность ~ 1000 TFLOP >Выяснение фундаментальных механизмов работы живой клетки >Разработка лекарственных препаратов >Разработка искусственных молекулярных машин (ДНК- компьютеры, нанороботы…) ASC Q, Los Alamos National Laboratory ~ 30 TFLOP
Моделирование систем нейронов и фрагментов мозга > Выяснение принципов функционирования мозга > Механизмы и способы лечения расстройств работы мозга > «Нейронные протезы» Blue Gene/L
Часть первая Сам себе суперкомпьютер
Лучшее соотношение производительность/потребляемая мощность
Немного о задаче Атом 1 Атом 3 Атом 2 Номер атома
Архитектура графического процессора SIMD – архитектура 128 73 18 4 9 2 132 82 20 сложить возвести в квадрат 17424 6724 400
Разделяемая память и кэш процессора GPU CPU Регистры процессора Разделяемая память Кэш Регистры Регистры 2 такта на доступ к разделяемой памяти или регистрам 200-300 тактов На чтение или запись значения в глобальную память Глобальная память ОЗУ
Примеры простых алгоритмов Для GPU Для CPU I,j – номера атомов Покаi<число_атомов Цикл Пока j<число_атомов Цикл Если i<>j Тогда F[i]=выч_град(i,j) F[j]=-Fi КонецЕсли КонецЦикла КонецЦикла I=НомерБлока*ЧислоПотоков+НомерПотока Покаj<i-1Цикл F[i]=выч_град(i,j) КонецЦикла j=j+1 Покаj<число_атомов Цикл F[i]=выч_град(i,j) КонецЦикла i j
Как выглядит молекулярная динамика (молекула белка в растворе) 35000 атомов. Траектория рассчитана программой GPAMP на видеокарте GeForce 8800 GTS
Часть вторая распределенные вычисления с использованием готового программного пакета
Немного о задаче – сайт-специфичная химия для молекулярного производства Особенности : >Используется готовый программный пакет >Значительное число элементов задачи может считаться независимо друг от друга К настоящему времени произведено более 150 000процессор/часов расчетов ~ 17процессор/лет
Выбор программного пакета и аппаратной конфигурации Факторы взаимосвязаны между собой сложным образом Тип процессора (программный пакет должен поддерживать и желательно быть оптимизирован для имеющегося оборудования) Производительность и масштабируемость (скорость расчетов в различных пакетах часто различается в десятки раз!) Метод распараллеливания вычислений Стоимость (коммерческий пакет не всегда работает быстрее бесплатного) Доступность исходного кода (возможность изменить программу для своих нужд) Поддерживаемая ОС
Ориентировочная производительность различных процессоров
Особенности вычислений в многопользовательских кластерных системах • Системы управления задачами: • MVS • PBS • http://www.pbsgridworks.com/ • SLURM • https://computing.llnl.gov/linux/slurm/ Настройки системы управления задачами на конкретном кластере может не подходить для решения некоторых задач Загруженный кластер может дать меньшую производительность чем один современный компьютер Производительность, GFLOP
Почему важно выбрать правильную программу? Скорость вычислений в различных программных пакетах различается в десятки, а иногда в сотни раз. Факторы, влияющие на быстродействие программы: * Алгоритм Язык программирования Оптимизация под конкретный процессор (использование SSE) Двойная/одинарная точность Компилятор Специализированные библиотеки функций Метод распараллеливания вычислений
Распределенные вычисления в локальной сети и Интернет – GRID системы Программа исполняется в фоновом режиме на рабочих и домашних ПК, обмен данными через Интернет • Готовые решения: • BOINC • Condor • Alchemi GRID (для .Net приложений) Готовые решения как правило требуют модификации исходного кода программы, что для готовых пакетов часто невозможно Проблема возобновления расчетов в готовом пакете Компьютер в GRID системе обычно работает в режиме 8*5
Как создать свой клиент для распределенных вычислений TCP/IP клиент Модуль управления программой для расчетов Анализ результатов, сжатие данных Сервер Передача данных через сеть База данных Программа, для проведения расчетов из готового пакета
Заключение: Как повысить производительность вычислений: Использовать специализированные аппаратные архитектуры (GPU, FPGA, MDGRAPE, CELL…). Выбрать более эффективный алгоритм (сменить используемый программный пакет). Использовать новые многоядерные процессоры вместо старых кластеров Использовать распределенные вычисления