Применение платформы Python для высокопроизводительных вычислений

Руководители: 

Русол Андрей Владимирович, к.т.н., с.н.с. ГЕОХИ РАН

Аннотация: 

Трек посвящен обзору основных возможностей языка Python, которые превращают его в платформу научных и инженерных вычислений. В настоящий момент Python обладает широким набором инструментов для построения вычислительных систем в широком диапазоне архитектур: от ноутбуков до высокопроизводительных суперкомпьютеров. В рамках трека предполагается дать основные сведения о применении Python для решения научных и инженерных вычислительных задач, хранению и обработке полученных результатов. В качестве базовых возможностей решения вычислительных задач и визуализации результатов, хранения и обработки данных в Python будут рассмотрены пакеты NumPy, SciPy, Matplotlib, H5Py, Pandas. Планируется уделить внимание реализованным в Python механизмам поддержки функциональности технологий параллельного программирования MPI и Nvidia CUDA, существенно расширяющим базовые возможности. Пакет MPI4Py обеспечивает Python такие возможности, как работа с группами и коммуникаторами, организация параллельного ввода-вывода, односторонние коммуникации, обработка ошибок и т.п. Основную возможность использования технологии Nvidia CUDA в Python обеспечивает пакет PyCUDA, при рассмотрении которого будут отмечены способы распределения работ и синхронизации, а также дополнительные вспомогательные процедуры. Помимо этих возможностей, для выполнения высокопроизводительных вычислений в Python реализован ряд специализированных JIT-компиляторов, существенно ускоряющих выполнение кода. В треке предполагается уделить внимание использованию JIT-компиляторов, представленных в пакете Numba. Трек предполагает выполнение практических заданий, в том числе и на суперкомпьютерах «Ломоносов» и Blue Gene/P.

 

Требования: Слушатели должны обладать базовыми знаниями по алгоритмизации и программированию, знать особенности синтаксиса языка программирования Python.

Материалы: