我正在做一些非常繁重和缓慢的科学模拟,我想知道是否有可能让我的程序在用户按键时显示一些有关其状态的信息。
它不需要是可移植的,只需要用于linux。
目前,我有这样一个代码:

main()
{
    //SOME GLOBAL INITIALIZATIONS

    //this loop is parallelized
    for(i=0;i<max;i++)
    {
        //Some particular to i initializations

        for(j=0;max2;j++)
        {
            // Here are all the slow and ugly calculations
            // the status should be able to be shown when
            // my program is here
        }
    }
    // Final calculations and final data
}

不确定这是否可能,但有时人们可能会认为代码被停止或什么也不做,这可能非常有帮助。
另外,如果不能同时使用omp,我可以使用更“手动”的并行化。
提前谢谢!

最佳答案

您可以使用pthreads库:让一个线程等待键或任何信号,当它被触发时。如果需要进行一些昂贵的计算来显示输出变量,请使用锁来停止模拟的执行,打印变量并释放锁。不知道这是否能与openmp思想一起工作。
如果您只需要打印VARS,在混合PP线程和OpenMP时不应该有问题。

关于c - 使程序在按下键时发出状态报告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14942533/

10-10 07:03