我正在编写一个结合使用消息传递接口(MPI)和qthreads的代码。即使我的实际代码在每个qthread下的使用率低于1 KB,我也不得不使用大于默认堆栈大小(8KB而不是4KB)的大小。我相信MPI调用是堆栈溢出的原因。MPI调用需要多少堆栈空间?
该代码使用来自桑迪亚国家实验室的OpenMPI和qthreads。
该代码在每个MPI进程上使用qthread“shepherd”运行,使用qthread_init(1) - qthreads仅用于MPI进程中的上下文切换。
我的问题是: 1)有没有一种方法可以确定MPI调用将使用多少堆栈空间? 2)有没有办法减少它使用多少堆栈空间? 3)是否有特定的MPI调用比平均MPI调用使用更多的堆栈空间?