How to run multinode PC Gamess with WMPI1.3:
The Dialect scripts PCGam or the more advanced Runpcg let you compose a PC Gamess job and do most of the chores to run this in parallel on a cluster of workstations including SMP machines connected on a LAN, WAN, and remotely, or a combination of those. If you are only running the sequential PC Gamess you don't need the following instructions which apply equally to PCGam and RUNpcg.We now assume that your operating system is Windows NT4, 2000 or XP. The computer where you run the PCGam script is called master the other nodes (if they exist) slaves. Without slaves the job runs in sequential mode on master. This has to be done to prepare your configuration of PC's for parallel execution: A) Get WMPI1.3 ('Windows Message Passing Interface', the minimum you need is included in pcgam.zip) and install it on the master e.g. in C:\WMPI1.3. Run Repeat this procedure on every machine you plan to integrate into your parallel runs. Of course, this has to be done only once and you need administrator rights for this installation! B) Check connectivity among master and slaves: Windows Netservices may require that the file C:\WINNT\system32\drivers\etc\hosts contains valid pairs IP-number/hostname for all nodes connected, e.g. ... 192.168.0.3 amd2000 192.168.0.4 Dell1 ... The valid IP number can be optained by typing 'ipconfig' in a DOS window, typing 'arp -a' or opening the arplist of the DNS server/router.Check that you have read/write permission from the master to every node. This can be done by typing 'ping "hostname"' for every slave node you want to include. If this is successful, you are set. Go to C) Perhaps your local network installation needs more information depending on router, DNS server, single LAN/WAN or several connected networks and workgroups.- The following works for my single network with one workgroup: Clicking on 'Network environment', 'Neighboring Computers' shows every computer now online. Click on each computer icon you want to include and see whether you can open it. If required you have to give an ID and a password. If you are rejected, create a new identity and password on that node. It is common practice to have the same name/password on every node involved, and even equal to the login of the master, used (exclusively) for parallel runs. This way you do not have any problem connecting, since the ID/passwords are sure to work. Please notice: If by some operation (like e.g. log off or shutting down) one of the nodes of a parallel computation becomes unavailable during a run the job crashes. The whole parallel environment has to be treated as 'protected' (hands-off by third persons!) during an ongoing computation. Versions of MPI now under development , click 'Projects', will remove this possibility for mishap. C) If A) and B) are in hand, this is how a Gamess job is run with PCgam: The Master Computer: directory e.g. c:\wrk0 contains (at first use): - pcgam.exe (and pcgam.d), or runpcg.exe the script in compiled form - pgamess.exe (now pcgamess.exe) from GAMESS-US in its downloadable archive - cvwmpi.dll from \WMPI1.3\lib\Console or pcgam.zip |
![]() |
Click on pcgam.exe. If it is the first time you are using it a configuration file pcgam.ini is created and deployed. Check
it, make the desired edits and save it. After closing the editor window the panel, left, with input (blue) and run (red) part is opened. For the newer RUNpcg script/GUI consult its Manual. Now let's make a test run with one CPU as a starter:
The panel is preconfigured for a job determining the optimized structure of Methanol with a model chemistry RHF/6-31G(d), and a number of choices explained in the Gamess input manual you can open by clicking [Input Doc] in the top row. If this is the job you want to run - do it once as a tutorial, please - just click on [Make Input]. The input file is composed from the choices in the option boxes and appears in the text area of the panel, see left. You can open it in an editor window with [Edit Input]: |
![]() |
![]() |
|
If this is what you want, close it, if not, make your last edits and 'File'/'Save' the file before closing the editor window. After closing a query window opens. Clicking on 'Ok' means Go! for the job, otherwise 'Cancel' (I have a German speaking Win2k, so it's 'Abbrechen') brings you back to the start. If [Run Job] is clicked the following window opens, telling you tersely what is happening: |
![]() A couple of seconds later the job finishes and the (here truncated) output file can be opened with [View Output] in the editor: |
![]() |
Now you're done, but you hate to browse through the long output just to find the optimized coordinates, the final SCF energy (at 0 K), or, perhaps, the Mulliken charges on the atoms within the molecule. These are among the choices of the drop-down menu which the button [Show Property] (click right) opens. You can use it several times and it just extracts the property chosen into an output window or prints it with [Print Property] (click left on the lower slider to change to printer): |
Perhaps you have installed the visualization program 'Molekel'. Then you may click the button [Molekel] which sends the output to 'Molekel' and opens it showing a stick model of the molecule you have just computed. Right click to see the choices offered by 'Molekel': Let's have a look at 'Orbitals' and choose to see the electron distribution of the HOMO as given by its wave function:![]() If you click [Toggle Editor] in the top row menu of the panel the built-in editor opens. With 'File/Open' an existing output file of Gamess can be opened so that the script knows about its content. You can then use the [Properties] button and compare properties from two or more Gamess runs with different parameters by 'File/Open' and 'File/Close'. The job can also be viewed with 'Molekel'. For additional informations on what the script can do, click on [PCgam Instructions]. Now, finally, we come to |
Parallel executionThis is simply enabled by changing 'Number CPU's' to more than 1, whereas all the preparations for a job are identical to what we did above for a single CPU. As soon as you send the job for execution the script opens an input window asking for the hostname and the process directory of the first slave: |
![]() |
![]() |
After checking for this 'remote' location the script creates that directory, if it does not exist, sends the files pgamess.exe, fastdiag.dll, and cvwmpi.dll to the location, if necessary, and then asks for the same information concerning the next slaves if more than 2 CPU's are given, etc. During this dialog the so called procgroup file for WMPI and the correct calling string are composed. So, after the last answer the script knows everything about your parallel configuration and starts the job:![]() When done, the output opens again in the editor, while the intermediate files on all nodes are erased, unless you have chosen the restart flag in the configuration file [Conf file]. The PUNCH and IRCDATA files are always saved in a newly created (if necessary) \data directory under the name of the job with the extensions .dat and .irc. Here's the head of an outputfile with 4 nodes: ![]() The hostnames and the process directories for the three slaves are indicated at top. This is exactly how they were given during the dialog, whereas the script determines automatically the corresponding information for the master. The hostnames of the slaves are those printed when 'running' hostname(.exe) on them and must be identical to those in the 'hosts' file or the routing table (see B) above), the directories can be chosen arbitrarily since PCgam creates them if they do not exist. Next time you start a parallel run on the same master, you have the choice to reenact the last parallel configuration (without repeating the dialog) or change it to a new one: |
![]() |
![]() |
| By the way, every node on your LAN/WAN etc. can function as master. There is nothing special about it. Of course, it is the location where pcgam.exe runs and your in- and output files are created. |