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

Руководители научной школы: 

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

Аннотация: 

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

 

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

Подробная информация: 

Программное Обеспечение: На компьютерах слушателей должен быть установлен определенный набор пакетов Python. Рекомендуется установить платформу Anaconda 3. Не нужно брать последние версии, т. к. далеко не все необходимые пакеты уже представлены для версии Python 3.8.Х.

Рекомендуется версия Anaconda 3: https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh 

Необходимо установить пакеты

  • из репозитория conda
    • mpi4py
    • h5py
    • vitables
    • cudatoolkit
    • numba
    • cupy
    • compyle
    • pygpu
    • paramiko
  • из репозитория pypi (следя чтобы использовался pip из инфраструктуры Anaconda) •
    • pycuda
    • pyopencl 
    • dask-cuda
    • pybind11
    • bohrium
    • theano
    • cocos

Внимание пользователям Windows: Не все пакеты имеют реализацию для операционной системы Windows. Рекомендуется искать варианты на сайте Christoph Gohlke: https://www.lfd.uci.edu/~gohlke/pythonlibs/

Материалы: