티스토리 뷰

오랜만에 프로필을 정리하다가, 석사과정에 있을 때, 잘~ 사용했던 PVM을 다시 찾아보게 되었다. 시간의 흐름만큼 발전하지는 않은듯 하지만, 여전하다는게 좋았다.

------------- 

PVM (Parallel Virtual Machine)은 각종(heterogeneous) 유닉스 및 윈도우 버전이 설치된 컴퓨터들이 네트워크로 묶여 마치 하나의 거대한 병렬 컴퓨터 처럼 사용할 수 있게 해주는  소프트웨어 패키지이다. 이렇게 함으로써,  다수 컴퓨터의 연산 능력과 메모리를 모아서 거대한 연산문제가경제적으로 해결할 수 있다. 이 소프트웨어는 매우 포터블(이식성)하다. 소스 코드는 netlib를 통해 무료로 구할 수 있으며, 노트북에서 수퍼컴퓨터의 대명사인 크레이(Cray) 컴퓨터에 이르기까지 컴파일이 자유롭게 이뤄진다.

PVM은 사용자의 자원을 일부 개방하여 거대한 문제를 해결하는데 일조할 수 있게  한다.  전세계에 거쳐 수백 개의 사이트에서 PVM을 이용하여 중요한 과학, 산업, 의학 문제들을 해결하고 있다. 또한, PVM은 병렬 프로그래밍을 교육하는데 사용될 수 있는 도구이기도 하다.  전세계 수만명의 사용자가, PVM을 분산 컴퓨팅 세계에서 사실상 표준(de facto standard)로 사용하고 있다.

  • 현재 최신 버전은 PVM 3.4.6이다.  윈도우 및 유닉스 버전이 포함되어 있고, Beowulf 클러스터의 사용이 개선되었다. 또한, 최신 패치가 포함되어 있는데, 리눅스, SUN, SGI 시스템을 위한 최신 패치를 가지고 있다.  PVM 3.4.x의 새로운 특징은 커뮤니케이션 컨텍스트(communication contexts), 메시지 핸들러(message handlers), 영구 메시지(persistent messages), NT와 Unix 클러스터 간에 상호 동작( interoperablity)이다.  (PVM 3.4 매뉴얼의 Advanced Tutorial 을  보도록 한다. )
  • Parallel::PVM 1.4.0 버전이 릴리즈 되었다. CPAN에서 구할 수 있는데, PVM의 펄(perl) 래퍼(wrapper)이다. 그룹 기능이 구현되었고, 100K보다 큰 메시지를 처리할 수 있게 되었다. 
  • S-Lang PVM 은  MIT 대학에서 개발한 S-Lang언어에 PVM 을 바인딩한 것이다.
  • RPVM 이 릴리즈되었다! RPVM은 PVM의 R바인딩이다. R은 알다시피, 벨 랩에서 만들었던 S에 기반하여 만들어진 현대의 통계분석 언어이다.  (modern interpreted statisitcal analysis language)
  • CUMULVS 1.1 릴리즈되었다.- a PVM spin-off project makes it easy to add interactive visualization and steering to your PVM applications or MPI applications. Runs on anything PVM runs on.
  • Some new items added to this page several new additions to "notable PVM software" developed by third parties around the world, new version of Java PVM, release of Python port to PVM, port of PVM to R, New distribution of PVM 3.4.5 for Windows.

Current articles from PVM news group comp.parallel.pvm

PVM Supported Architectures

 PVM Documentation:

HTML version of MIT Press book:
PVM: Parallel Virtual Machine A Users' Guide and Tutorial for Networked Parallel Computing 
How to order your own copy ($17.95) from MIT.

 HTML Man pages for PVM 3.3.

XPVM 1.1 Tech Report (3 MB postscript).


PVM Source Code:


PVM Programming: 

  • Troubleshooting PVM Startup What to do when you see, "Error: Can't start pvmd"
  • Compile problem with Redhat 7.0 and PVM 3.4.3. Redhat changed the way compilers work between 6.x and 7.0 that causes an error message on compile. The fix is simple and can be applied manually: You need to change 2 lines in pvm3/src/lpvmpack.c as follows: 
        line 1827:   tc = (char) va_arg(ap, int); 
        line 1852:   th = (short) va_arg(ap, int); 
    then recompile. That should do it. This fix is in the PVM 3.4.4 and later releases.
  • Introduction to programming with PVM.
  • NAG releases Numerical PVM Library and UT announces official release of
    SCALAPACK - a library of optimized, parallel linear algebra routines using PVM.
  • FORGE90 - a commercial tool that automatically parallelizes Fortran codes, using PVM calls if requested.
  • VPE - Visual programming environment (produces PVM programs). Prototype software available.
  • PADE - NIST has developed a graphical user interface that incorporates all essential tools for development of parallel applications. Current version utilizes the PVM message passing library.
  • Trapper - is a graphical programming environment by GENIAS Software. TRAPPER contains components for the parallel software design, hardware configuration, process mapping, process monitoring, graphical software debugging and performance monitoring. Uses PVM when running over clusters of computers.
  • PVM Performance Hints
  • Debugging PVM programs 
    PVM debuggers
    • TotalView - commercial parallel debugger from Etnus (formerly Dolphinics) - well done!
    • Xmdb - parallel programming and debugging trainer for beginners
    • p2d2 - a portable parallel distributed debugger from NASA.
    • AIMS - nice tool developed by NASA
    • CXTRACE - commercial version of AIMS from Convex
    • D.bugger - uses the Expect package to provide an interface to issue debugger commands. (presently works for IRIX and AIX)
  • Job Schedulers and Automatic Load Balancers
    Third party packages that work with PVM include:
  • Performance Monitors for PVM Programs
    (send us email if you want to be added to the list:)
    • XPVM 1.1 - 10x faster, and new message queue views.
    • Paradyn - more monitor than debugger (new release available!).
    • PGPVM - produces trace files compatable with ParaGraph.
      NEW Version called PGPVM2 is now available!
    • PG_PVM - Another package that produces trace files compatable with ParaGraph. (Claims it can also be used to profile MPI programs)
    • PVaniM2.0 - provides online and postmortem visualization.
    • AIMS - nice tool developed by NASA
    • And check out packages in the debuggers list
  • Noteable PVM related Software 
    If you think you have something to list here let us know
    • S-Lang PVM Micheal Noble and company at MIT have created S-Lang bindings to PVM for all you S-Lang users out there. Enjoy!
    • LPVM LPVM is PVM3 bindings for Common Lisp with UFFI. The developer, Ivan Boldyrev, says patches are welcome.
    • pypvm-0.92 New release! Michael Petullo and Greg Baker have merged their Python-PVM into a single release. Very nice. Check it out.
    • Using Windows MFC with PVM Brian Piscopo describes how to make PVM compatible with MFC (Microsoft Foundation Classes), including a working example. This allows people to harness the power of PVM while providing easy-to-use GUIs for Windows.
    • IDL to PVM interface. This Interactive Data Language (from Research Systems) interface to PVM lets you perform parallel processing with IDL through PVM calls. It is analogous to the MATLAB toolbox.
    • Dynamite Dynamic PVM for dynamic task (re-)allocation of PVM tasks using the Dynamite Checkpointer also available at the above link.
    • PVM Configurator allows one to create/modify/setup hostfiles and then start them. The big advantage of this very nice graphical program is to speedup the configuration of new clusters. (Source Code now available)
    • EasyPVM is a C++ wrapper for the PVM libraries. It is intended to be EASY and wrap the most-used core of the PVM libraries. There are only three classes: PvmDaemon, PvmTask and PvmStream. PvmStream features unlimited message size and strong type checking of the variables passed. (Full source code available)
    • APPSPACK a library of asynchronous and fault tolerant parallel pattern search methods for optimization. It is particularly useful for engineering optimization design problems characterized by a small number of variables and by expensive objective function evaluations.
    • PVM GMake Jean Labrousse has released his Gmake software package.
    • PVM Toolbox for Matlab Javier Baldomero has created a toolkit for calling PVM from Matlab.
    • HP-PVM - fast commercial PVM clone, with improvements. Supports PVM 3.3 on Windows and Unix as well as shared memory. Free trial download available
    • DAMPVM - Dynamic allocation and migration extension built on PVM by Pawel Czarnul of Technical University of Gdansk.
    • WAMM (Wide Area Metacomputer Manager), developed at CNUCE-Institute of the Italian National Research Council, is a graphical tool, built on top of PVM. It provides user with a graphical interface to assist in repetitive and tedious tasks such as: host add/check/removal, process management, compilation on remote hosts, remote commands execution.
    • Fortran 90 PVM interface - developed by Laurent Gasser, this tar file contains all the files you need to take advantage of Fortran 90 facilities. It is used in the current development of the PVM version of his weather forcast numerical model. Enjoy!
    • tkpvm - developed by Nijtmans in the Netherlands, this package combines the power of tcl/tk and PVM. Good stuff!
    • tclpvm - this package and a suite of tools based on this package are in the standard distribution of the Beowulf Linux distribution. Look for it soon in other Linux distributions!
    • PIOUS - Parallel I/O system for PVM applications. Developed by Vaidy Sunderam and Steve Moyer.
    • Adsmith - is an object-based DSM totally built on top of PVM, without using any system dependent facilities. Adsmith employees many performance optimization techniques to improve its performance.
    • WPVM 2.0 - Alexandre Alves of University of Coimbra - PORTUGAL has created a PVM version for Microsoft Windows.
    • jPVM - new version 1.1.4, which works with PVM 3.4, a native methods interface to PVM for the Java (tm) platform
    • JPVM - is a PVM-like class library implemented in and for use with Java.
    • Perl-PVM - Perl extension for PVM. Remember think perl think parallel!
    • Pypvm is a Python interface to PVM. Python is probablly the second most popular scripting language behind Perl. If you use Python, go parallel with Pypvm.
    • CPPvm ( C Plus Plus PVM) - a C++ interface to PVM 3.4 written by Steffen Goerzig. It allows send/recv of C++ objects as well as use of distributed C++ objects, and more...
    • PowerPVM - GENIAS Software has a high performance versions of PVM for Parsytec Systems.
    • Sciddle - a software package developed at ETH Zurich, Switzerland that enables an application to use asynchronous Remote Procedure Calls within the PVM environment.
    • SP2 patch For the those who use the fast SP2MPI port on the IBM SPx, we have a patch to PVM 3.3.11 for a reported bug that can occur when the cyclic buffer that holds the outstanding request handles get corrupted. The error message is "invalid handle in an MPI_Test call". The patch only affects SP2MPI.

     Additional information:



    URL http://www.csm.ornl.gov/pvm/
    ORNL | CSM
    Email comments to: pvm@msr.csm.ornl.gov 
    Last Modified December 5, 2011


'부담없이 읽기' 카테고리의 다른 글

PF_RING  (0) 2023.03.12
Prompt  (0) 2023.03.10
몸살 한 주, 그리고, 알러지 한 주  (0) 2014.12.20
'까마귀와 배' 그리고, 시나리오  (1) 2014.12.13
오이와 자두  (0) 2014.12.13