
Simple MPI Program
在该程序中,用户试图广播一个等于20的char变量长度
使用MPI_BYTE mpi-type代替MPI_CHAR.
我试图(可能不是很聪明)广泛转换整数变量“n”
使用MPI_BYTE类型:
call MPI_BCAST(n,1,MPI_BYTE,MPI_COMM_WORLD,IErr)
但是当我为处理器打印“n”的值时,我得到了一个很大的数字
不同于根.
我的问题是我什么时候可以使用MPI_BYTE?
我已经读到它依赖于机器架构,但我仍然没有明白这一点.
问候.
解决方法 您的问题很容易解决:您对MPI_BYTE的使用(几乎)完全正常,但是要发送的元素大小/数量(在这种情况下:字节数)是错误的.根据整数的长度(例如4个字节),您必须将第二个参数设置为4:
call MPI_BCAST(n,4,IErr)
无论你在这里使用MPI_BYTE还是MPI_CHAR都没关系,因为它们的长度都相同(这就像unsigned char与char一样).但是你必须记住,这在不同的架构之间不起作用.
要解决此问题,请使用正确的类型(MPI_INTEGER)来确保(幕后)转换,例如从little endian到big endian:
call MPI_BCAST(n,MPI_INTEGER,IErr)总结
以上是内存溢出为你收集整理的c – mpi_byte是如何工作的?全部内容,希望文章能够帮你解决c – mpi_byte是如何工作的?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)