Особенности языка Фортран, взгляд со стороны С

Обратный порядок записи массивов. a[i,j] в С будет эквивалентен a(j,i) в Фортране, в обоих случаях j будет бежать по строке, i по столбцу при обычной вложенности циклов сначала по i потом по  j. Аллоцирование массивов в памяти Неважно какой, статический… Continue Reading

Эффективная параллелизация с учетом NUMA

Корректная параллелизация только вычислительных участков программы недостаточна при масштабировании ПО на более чем один процессор (сокет). Это связано с NUMA policy, точнее ее значением по умолчанию. Для многопроцесорных систем следует учитывать наличие на узле ближней (на этом же сокете) и… Continue Reading

Shared или private, три простых правила

В Openmp параллелизация подкупает своей простотой. Добавил прагму к циклу и хоп — я знаю кунг-фу. Тем не менее такое отношение частенько приводит к разнообразным ошибкам обращения к одной и той же переменной. В OpenMP есть два основных класса переменных… Continue Reading

Вопросы миграции процессов

С точки зрения производительности параллельной программы пиннинг (привязка процесса к ядру процесса) очень важен. Во первых не прикрепленный (pinned) процесс постоянно вынужден мигрировать по ядрам и даже сокетам, что приводит к частой инвалидации содержимого кэша и как следствие — увеличение… Continue Reading

Тренинг по оптимизации ПО

В МГУ прошла первая часть тренинга по оптимизации ПО. Пользователи кластеров МГУ (Чебышев и Ломоносов) приносили свои исходные коды, а инструкторы компании Intel рассказывали об инструментах для оптимизации и на живом примере показывали как они работают. http://msu-intel.parallel.ru/?q=node/81 Работа была построена… Continue Reading

Развитие стандарта MPI

Не так давно (4 сентября 2009г) была принята новая версия стандарта MPI-2.2. В основном содержащий косметические изменения по сравнению с предыдущим вариантом (уточнения различных моментов, введение новых типов данных). Полный вариант стандарта  (и всех предыдущих) в формате pdf можно скачать… Continue Reading

Проверка кластерной сети

Одна из основных проблем крупных кластеров — это поддержка работоспособного состояния сетевой системы. Кроме терминального состояния «коннект отпал» возможны так же промежуточные варианты — падения скорости или возникновение задержек. Ситуация усугубляется тем что сложная фабрика может реагировать на битый кабель… Continue Reading

Вышел обновленный FFTW-3.2alpha

Наконец-то дождались. Судя по сайту fftw.org казалось автор совершенно забросил свое творение, и тут новая версия. В нем анонсирована поддержка MPI FFT преобразования. Теперь можно потихоньку начинать переезжать с 2.1.5. Поскольку это еще альфа, документации пока нет. Но вообщем то… Continue Reading

Архитектура современных суперкомпьютеров

Эта обзорная статья, в которой я постараюсь избегать подробностей и ненужных деталей, предназначена она в основном для новичков. Есть два подхода при построении современных суперкомпьютеров — системы с общей памятью и так называемые кластеры. Каждый подход не исключает другого, у… Continue Reading