栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java并行编程

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java并行编程

如果您询问纯 并行编程(非并发 编程),那么绝对应该尝试MPJExpress http://mpj-
express.org/
。它是mpiJava的线程安全实现,并且支持分布式和共享内存模型。我尝试过,发现非常可靠。

1 import mpi.*;  2  3   7  8 public class Send {  9 10     public static void main(String[] args) throws Exception { 11 12         MPI.Init(args); 13 14         int rank = MPI.COMM_WORLD.Rank() ; //The current process.15         int size = MPI.COMM_WORLD.Size() ; //Total number of processes16         int peer ; 17 18         int buffer [] = new int[10]; 19         int len = 1 ;20         int dataToBeSent = 99 ; 21         int tag = 100 ; 22 23         if(rank == 0) { 24 25  buffer[0] = dataToBeSent ; 26  peer = 1 ; 27  MPI.COMM_WORLD.Send(buffer, 0, len, MPI.INT, peer, tag) ; 28  System.out.println("process <"+rank+"> sent a msg to "+ 29          "process <"+peer+">") ; 30 31         } else if(rank == 1) { 32 33  peer = 0 ; 34  Status status = MPI.COMM_WORLD.Recv(buffer, 0, buffer.length, 35     MPI.INT, peer, tag); 36  System.out.println("process <"+rank+"> recv'ed a msgn"+ 37          "tdata   <"+buffer[0]    +"> n"+ 38          "tsource <"+status.source+"> n"+ 39          "ttag    <"+status.tag   +"> n"+ 40          "tcount  <"+status.count +">") ; 41 42         } 43 44         MPI.Finalize(); 45 46     }  47 48 }

消息库(如MPJ
Express)提供的最常见功能之一是对执行进程之间的点对点通信的支持。在这种情况下,属于同一通信器(例如MPI.COMM_WORLD通信器)的两个进程可以通过发送和接收消息来相互通信。Send()方法的一种变体用于从发送方进程发送消息。另一方面,通过使用Recv()方法的变体,接收方进程将接收到已发送的消息。发送方和接收方都指定一个标签,该标签用于在接收方找到匹配的传入消息。

在第12行上使用MPI.Init(args)方法初始化MPJ
Express库之后,程序将获得其等级和MPI.COMM_WORLD通信器的大小。这两个进程都初始化了第18行上称为缓冲区的长度为10的整数数组。发送程序进程(等级为0)将值10存储在msg数组的第一个元素中。Send()方法的一种变体用于将msg数组的元素发送到接收器进程。

发送方进程在第27行调用Send()方法。前三个参数与要发送的数据有关。发送缓冲区(缓冲区数组)是第一个参数,后跟0(默认值)和1(计数)。发送的数据为MPI.INT类型,目标为1(对等变量);数据类型和目标被指定为Send()方法的第四和第五个参数。最后和第六个参数是标签变量。标签用于在接收方识别消息。消息标签通常是特定通信器中特定消息的标识符。另一方面,接收方进程(等级1)使用阻塞接收方法接收消息。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419751.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号