Я попытался запустить код, xcorupc_alaska
скомпилированный на Berkeley UPC
upcrun -n 3 -shared-heap=18GB xcorupc_alaska inputpgas0.txt
Общий объем памяти на моем компьютере составляет 64 GB
, и я хочу выделить от 18 GB
до 3
процессоров (это четырехъядерный процессор), поэтому это должно быть выполнимо (использование 18x3=54 GB
). Однако я получаю эту ошибку.
UPC Runtime error: out-of-range size for UPC_SHARED_HEAP_SIZE: 18 GB
NOTICE: Before reporting bugs, run with GASNET_BACKTRACE=1 in the environment to generate a backtrace.
UPC Runtime error: out-of-range size for UPC_SHARED_HEAP_SIZE: 18 GB
NOTICE: Before reporting bugs, run with GASNET_BACKTRACE=1 in the environment to generate a backtrace.
UPC Runtime error: out-of-range size for UPC_SHARED_HEAP_SIZE: 18 GB
NOTICE: Before reporting bugs, run with GASNET_BACKTRACE=1 in the environment to generate a backtrace.
Любая идея о том, что вызывает эту ошибку и как ее исправить? Спасибо за вашу помощь.
РЕДАКТИРОВАТЬ: даже для системы 64 bit
максимальная общая память по умолчанию для каждого потока равна 16 GB
. По информации в INSTALL.TXT
я перекомпилировал с флагом --with-sptr-packed-bits=20,9,35
. Это ограничивает максимальное количество возможных потоков до 2^9
, но разрешает 2^16=32 GB
максимальное количество разделяемой памяти на поток. Это решило мою проблему.