你的描述有点模糊,但它对MPI来说肯定是可行的。 GPU的添加无关紧要,因为MPI并不关心MPI调用本身运行的代码(我曾经编写过一个使用Qt进行可视化和线程化的MPI应用程序)。
我能看到的最大的警告是MPI程序由一个程序的多个实例组成:如果你的OpenMP和OpenCL解决方案是单独的应用程序,你不能只生成两个并且让它们全部一起运行。但是,您可以编写一个简单的包装器应用程序,例如,使用OpenMP解决方案生成一个线程,使用OpenCL解决方案生成另一个线程。使用MPI运行此包装应用程序将获得所需的结果,但当然通信可能会有点棘手(在线程之间共享通信器信息等)。