Escali 4.4 manual Mpirun wrapper script, Mpirun usage

Page 39

Section: 3.3 Running Scali MPI Connect programs

For each MPI process SMC will try to establish contact with each other MPI process, in the order listed. This enables mixed interconnect systems, and provides a means for working around failed hardware.

In a system interconnect where the primary interconnect is Myrinet, if one node has a faulty card, using the device list in the example, all communication to and from the faulty node will happen over TCP/IP while the remaining nodes will use Myrinet. This offers the unique ability to continue running applications over the full set of nodes even when there are interconnect faults.

3.3.3 mpirun - wrapper script

mpirun is a wrapper script for mpimon, providing legacy MPICH style startup for SMC applications. Instead of the mpimon syntax, where a list of pairs of node name and number of MPI-processes is used as startup specification, mpirun uses only the total number of MPI- processes.

Using scaconftool, mpirun attempts to generate a list of operational nodes. Note that only operational nodes are selected. If no operational node is available, an error message is printed and mpirun terminates. If scaconftool is not available, mpirun attempts to use the file /opt/ scali/etc/ScaConf.nodeidmap for selecting the list of operational notes. In the generated list of nodes, mpirun evenly divides the MPI-processes among the nodes.

3.3.3.1 mpirun usage

mpirun <mpirunoptions> <mpimonoptions> <userprogram> [<programoptions>]

where

<mpirunoptions> mpirun options <mpimonoptions> options passed on to mpimon <userprogram> name of application program to run.

and

<programoptions> program options passed on to the application program.

The following mpirunoptions exist:

-cpu<time>

Limit runtime to <time> minutes.

-np<count>

Total number of MPI-processes to be started, default 2.

-npn<count>

Maximum number of MPI-processes pr. node, default np <count>/

 

nodes.

-pbs

Submit job to PBS queue system

-pbsparams<“params”>Specify PBS scasub parameters

-p4pg<pgfile>

Use mpich compatible pgfile for program, MPI-process and node

 

specification. pgfile entry: <nodename> <#procs> <progname>

 

The program name given at command line is additionally started

 

with one MPI-process at first node

-v

Verbose.

-gdb

Debug all MPI-processes using the GNU debugger gdb.

-maxtime <time>

Limit runtime to <time> minutes.

-machinefile<filename>Take the list of possible nodes from <filename>

-noconftool

Do not use scaconftool for generating nodelist.

-noarchfile

Ignore the /opt/scali/etc/ScaConf.nodearchmap file (which

 

describes each node).

-H<frontend>

Specify nodename of front-end running the scaconf server.

-mstdin <proc>

Distribute stdin to MPI-process(es).

Scali MPI Connect Release 4.4 Users Guide

27

Image 39
Contents Scali MPI ConnectTM Users Guide Copyright 1999-2005 Scali AS. All rights reserved AcknowledgementScali Bronze Software Certificate Maintenance II Software License Terms CommencementGrant of License Export Requirements SupportLicense Manager Sub-license and distributionLICENSEE’s Obligations SCALI’s ObligationsTransfer Title to Intellectual Property RightsCompliance with Licenses Warranty of Title and Substantial PerformanceScali MPI Connect Release 4.4 Users Guide Vii Limitation on Remedies and LiabilitiesMiscellaneous Proprietary InformationGoverning Law Scali MPI Connect Release 4.4 Users Guide Table of contents Profiling with Scali MPI Connect Appendix a Example MPI code Scali MPI Connect Release 4.4 Users Guide Scali MPI Connect product context ChapterPlatforms supported Scali mailing lists SMC FAQ SMC release documentsProblem reports SupportFeedback How to read this guideAcronyms and abbreviations LicensingNIC Terms and conventions Typographic conventionsGUI style font Typographic conventions Scali MPI Connect components Description of Scali MPI ConnectSMC network devices Ethernet Devices Direct Access Transport DATNetwork devices Shared Memory DeviceUsing detctl Using detstat3.2 DET 5.1 IB MyrinetInfiniband 4.1 GMCommunication protocols on DAT-devices 6 SCIChannel buffer Inlining protocol Eagerbuffering protocolTransporter protocol MPI-2 Features Support for other interconnectsZerocopy protocol Scali MPI Connect Release 4.4 Users Guide MPI-2 Features Running Setting up a Scali MPI Connect environmentCompiling and linking Scali MPI Connect environment variablesLinker flags Compiler supportNaming conventions Running Scali MPI Connect programsMpimon monitor program Basic usageIdentity of parallel processes Program spec Controlling options to mpimonStandard input Standard outputNetwork options How to provide options to mpimonMpirun usage Mpirun wrapper scriptPart part Running with tcp error detection TfdrSuspending and resuming jobs Running with dynamic interconnect failover capabilitiesDebugging with a sequential debugger Debugging and profilingDebugging with Etnus Totalview Using built-in segment protect violation handlerBuilt-in-tools for debugging Assistance for external profilingControlling communication resources Communication resources on DAT-devicesChannelinlinethreshold size to set threshold for inlining Matching MPIRecv with MPIProbe Using MPIIsend, MPIIrecvUsing MPIBsend Good programming practice with SMCUnsafe MPI programs Error and warning messagesUser interface errors and warnings Fatal errorsMpimon options Giving numeric values to mpimon PrefixPostfix Scali MPI Connect Release 4.4 Users Guide Example Profiling with Scali MPI ConnectTracing Using Scali MPI Connect built-in trace+relSecs S eTime where AbsRank MPIcallcommNamerankcall-dependant-parameters whereExample FeaturesTiming Using Scali MPI Connect built-in timingMPIcallDcallsDtimeDfreq TcallsTtimeTfreq Count!avrLen!zroLen!inline!eager!transporter! where Using the scanalyzeCommrank recv from fromworldFromcommonFields Commrank send to toworldTocommonFields whereFor timing This produces the following report Using SMCs built-in CPU-usage functionalityScali MPI Connect Release 4.4 Users Guide Automatic buffer management Tuning communication resourcesFirst iteration is very slow How to optimize MPI performanceBenchmarking Caching the application program on the nodesMemory consumption increase after warm-up Collective operationsFinding the best algorithm Appendix a Programs in the ScaMPItst packageImage contrast enhancement Scali MPI Connect Release 4.4 Users Guide Original File formatWhen things do not work troubleshooting Why does not my program start to run?Appendix B Why can I not start mpid? Why does my program terminate abnormally?General problems Appendix C Per node installation of Scali MPI ConnectExample Install Scali MPI Connect for TCP/IPInstall Scali MPI Connect for Direct Ethernet Install Scali MPI Connect for MyrinetLicense options Install Scali MPI Connect for InfinibandInstall Scali MPI Connect for SCI Install and configure SCI management softwareUninstalling SMC Troubleshooting Network providersScali kernel drivers Troubleshooting the GM provider Troubleshooting 3rdparty DAT providersScali MPI Connect Release 4.4 Users Guide Appendix D Bracket expansion and grouping Bracket expansionGrouping Scali MPI Connect Release 4.4 Users Guide Related documentation Appendix EScali MPI Connect Release 4.4 Users Guide List of figures Scali MPI Connect Release 4.4 Users Guide Transporter protocol IndexSSP