我在GMP中有一个用于椭圆曲线离散对数问题(ECDLP)的Pollard Rho代码,我想用MPI进行并行化。请指导我是否可以在同一C代码中同时使用两个库,或者我是否必须将整个代码转换为MPI语法。
答案 0 :(得分:3)
GMP是一个多精度算术库。
MPI是一个库和一组工具,使您能够在不同的进程中运行代码(虽然某些版本的MPI使用了线程,但这并不常见)。由于流程不共享内存,因此您在一个流程中使用GMP执行的任何操作都不会影响另一个流程。
你唯一的担心是GMP正在进行某种内部多线程以加快速度(我不这么认为)。如果是这样,在MPI中分配的进程少于你可能的进程,或禁用GMP的多线程。