Поддержка файловых операций с большими файлами на BG/P

Уважаемые администраторы, если посчитаете нужным -- перенесите в какой-нибудь раздел FAQ.

По умолчанию, функции из fcntl.h на вычислительных узлах (да и на фронт-энде тоже) BlueGene/P используют 32-битные переменные, соответственно вызовы fcntl(), stat(), open(),creat() и другие для файлов размером > 2 Гб будут выдавать ошибки. Чтобы активировать поддержку больших файлов, необходимо компилировать исходный код с ключами -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64

Спасибо. Добавлено в FAQ: http://hpc.cmc.msu.ru/en/bgp/faq#large_files

По-моему, это актуально не только для BG/P, но для большинства Linux-систем. По крайней мере, в README.txt к пакету SuiteSparse тоже упоминаются эти ключи.

К слову про большие файлы. Я в своем коде использую MPI-IO и устанавливаю "файловые виды". При этом пользуюсь функциями MPI_Type_indexed() и MPI_Type_create_indexed_block(). Индексы смещений в эти функции передаются как int. Думаю, скоро int'а мне будет не хватать... Жаль, что нет варианта этих функций, принимающих аргументы типа MPI_Offset.