Parallel Virtual Machine

As already mentioned earlier, our parallelization of the collision detection methods presented earlier was implemented using Parallel Virtual Machine or PVM ([ GBD+94 ]). PVM is the result of ongoing research into the use of heterogenous networks in computing at the University of Tennessee, Oak Ridge National Laboratory and other universities. It is essentially a system that allows a network of very different types of computers to be used as a single, parallel computers for example as in  4.2 . Of course, a specific type of computer can only be used if a version specific for the architecture of the computer is available.

More precisely, the system consists of two parts. The first part is a daemon program, called pvmd3 or pvmd. This daemon must run on every computer in the network that is to be used in the computing network. If there is no daemon available for this system, the system cannot be used. The daemon allows a computer to be used in different PVM's. The second part in the PVM system is a library. This library contains a number of tools and routines necessary to start up programs, add or remove computers from the virtual machine etc. In the current implementation of PVM, three programming languages are supported, namely C, C++ and FORTRAN, since these languages are most often used in scientific computing.


    Figure 2: PVM allows easy use of heterogeneous computer networks \begin{figure} \begin{center}  \includegraphics [width=7cm] {pvm_het.eps} \end{center}\end{figure}

Now, when designing an application using PVM, you have to take into account that the basic element of computation is a task. Such a task usually corresponds with a UNIX task. It can, using the functionality offered by the PVM library, start up and kill other tasks, communicate with them and much more. A complete description and manual can be found in [GBD+94]. It is important to notice that the execution of tasks can be handled completely by the PVM daemon. We can let PVM decide on which computer and when exactly the task is effectively executed (of course, as fast as possible and taking into account the dependencies between the computations performed in the tasks). On the other hand, if you know that a certain computer is particularly fast in handling the computation needed by a certain task, it is perfectly possible to assign that task to that computer. As you can see, PVM allows great flexibility in parallel and concurrent computation and at the same time provides an abstract interface to the network of computers so you don't have to worry about specific implementations for different architectures.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值