我尝试运行xcorupc_alaska
编译的代码Berkeley UPC
upcrun -n 3 -shared-heap=18GB xcorupc_alaska inputpgas0.txt
我的计算机上的总内存是64 GB
并且我想分配18 GB
给3
CPU(它是一个四核处理器),所以它应该是可行的(使用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
,我用flag重新编译--with-sptr-packed-bits=20,9,35
。这将可能的最大线程数限制为2^9
,但允许2^16=32 GB
每个线程的最大共享内存。这解决了我的问题。