Fortran Coder

标题: fortran下有没有什么异步方案 [打印本页]

作者: sipie800    时间: 2018-11-12 20:11
标题: fortran下有没有什么异步方案
我在写一个大型计算程序,计算中每一步骤都比较长时间,我想在运行过程中把每一步计算结果实时自动画成一些数学图,便于研究算法内部的情况。目前研究清楚了plplot库调用QT绘图库的fortran实现,但是plplot使用qt绘图窗口有个问题,画的结果弹出来后必须在绘图窗口里回车一下关掉窗口,整个程序才继续往下进行。我想绘图窗口接受到用于绘图的数据后自己绘图,同时算法不管绘图进度直接往下继续算,这相当于绘图是一个异步的线程,如何可以实现呢?我找不到清楚的资料,dll调用也是要等待返回吧?如果用openmp把绘图当做一个并行线程,感觉太不划算,因为plplot的资源开销相比于算法计算太微小了...


求指导有什么办法可以把fortran计算出的中间结果数据传给独立的绘图的例程(exe,dll....??),同时算法毫不受影响继续计算??实在不行用写文件到磁盘中转,但是感觉太low了速度不好......

作者: vvt    时间: 2018-11-13 08:57
百度搜索“多线程”
一般 fortran 不管,由UI负责的语言进行多线程,然后分出“计算线程”“响应线程”“主线程”

计算线程调用 Fortran 函数,把进度、中间数据通过指针传递给fortran。fortran通过改变这些变量,告知进度和中间结果。
响应线程,负责每隔一段时间,把进度、中间数据,响应给窗口绘图。
主线程,继续做消息循环/事件处理。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2