Моделирование систем нейронов и фрагментов мозга

advertisement
Высокопроизводительные вычислительные системы:
применения в биологии и
практические аспекты решения некоторых задач
ВВЕДЕНИЕ:
Высокопроизводительные вычисления в
биологических науках
Суперкомпьютеры используются для
моделирования природных молекулярных
машин
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…).
Выбрать более эффективный алгоритм (сменить используемый
программный пакет).
Использовать новые многоядерные процессоры вместо старых
кластеров
Использовать распределенные вычисления
Download