我正在使用C++编写一个程序,在其中需要执行一个非常复杂的积分计算,我认为采用数值逼近方法将会很困难和低效。
我的想法是通过fork()
生成一个子进程,并让该进程启动一个Mathematica内核来计算积分。(脚本将预先定义变量并作为命令行参数传入)。
目前我只知道的方法就是使用Mathematica将积分的最终值写入文件,然后让父进程轮询(查找文件是否已经写入),等待文件完成后再读取文件中的值。
有没有更有效率的方法呢?我知道向文件中写入数据并轮询会带来很多开销,但我不知道如何与Mathematica发送/接收信号。是否可以在Mathematica和我的程序之间打开一个共享内存区域,使得数值可以被写入该内存区域而不是由两个进程读写文件?
如果您有任何其他想法或加速此技术的方法,都将不胜感激。