Уважаемые администраторы, если посчитаете нужным -- перенесите в какой-нибудь раздел 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
.