说说最近踩的坑,为了在windows的电脑下做并行程序设计作业埃拉托色尼素数筛选法,用的是MPI,然后发现这类库对于windows的用户非常不友好,比如说MPICH2后续已经不支持windows,OpenMPI貌似只支持linux,而微软维护的MS-MPI能够支持windows,但是我在使用clion(cmake)进行包引入的时候出了很多问题,可能的原因是windows下没有mpicc/mpicxx,可能的解决方案是使用微软自家的VS去做,但是我觉得VS太过臃肿而不想下载,最终我得出来的结论是:windows + clion + MPI 暂时无法实现,即使翻阅了很多网上的资料也没有响应的解决方案,无奈之下只能在远程的linux下编程,使用的是ubuntu 16.04这个系统,然后思路是因为要编程所以配置一个ubuntu GUI,然后装上lion,把之前写的代码从git下clone下来,然后由于我的服务器是在华为云上的一个7天体验卷,也就只有2核4G,所以我打算后续在工作室一台比较老的服务器上写代码,然后比较坑的是那个玩意儿没有公网IP,因此我想看看能否通过teamviewer来从远程连接,虽然感觉可能性不大hhh。
2019-05-19续——
后来我测试了一下teamviewer连接服务器,但是这个被归为了商业用途就是要收费的(就很烦),算了算了…只能老老实实用windows的远程连接8。后续在linux服务器上写完了几个优化之后(见后),在测试阶段发现优化后的时间反而边长了,虽然后来用了增加cache命中率来提升性能,但是我认为加速还是受到了干扰,于是只能去专业的实验室用里面的电脑搞事情,所以我又把windows上mpi的配置搞了一边,还生成了一下不同优化的exe,然后再拿回自己的电脑测试,现在想一想,之前无法在自己的电脑的windows上用clion编译可能是和cmake建立动态链接失败有关,但是自己对这方面不熟,网上资料不全,所以搞着搞着就放弃了。但是安装了mpi还是能够执行编译生成的exe文件滴。