[GE users] Gaussian09 with Linda 8.2

ppk ppk at ats.ucla.edu
Fri Dec 4 18:41:28 GMT 2009


You need something like this to pre-process your Gaussian 
input file.  In this script inputs are your original 
gaussian input, jobid and pe_hostfile.  Jobid is appended to 
output file so that it doesn't overwrite the original input 
file.   If you call this script before the gaussian 
executable call your new output will be in the correct 
format for gaussian linda. This script assumes you are 
running 4 shared jobs per node meaning if you ask for 12 
processors, 4 each will be distributed on each node.  You 
should also call a parallel environment that allocates 4 
slots per node. You may have to modify the logic to suit 
your environment.  Hope this helps.

Prakashan


#!/usr/bin/perl
# Modify the Gaussian Inputfile for Linda Parallel Jobs (PPK 
10/30/09)
use strict;
my $lindahosts;

my $numArgs = $#ARGV + 1;
#print "Number of arguments are $numArgs \n";
if ( @ARGV < 3 ) {
     print "This script expects three arguments input jobid 
and pe_hostfile file names \n"
}

my $input    = shift(@ARGV);
my $output     = shift(@ARGV);
my $pe_hostfile = shift(@ARGV);

$output="job".$output."\.com";

open (FH, $pe_hostfile) ||
         die ("Can't open $pe_hostfile for reading\n");

while (<FH>)  {
  my ($host,$slot,$queue,$noth) = split(/ /,$_);
     $slot = $slot / 4;
     if ( $slot eq 1 )
     {
        $lindahosts=$lindahosts.$host.",";
     }
     else
     {
        $lindahosts=$lindahosts.$host.":".$slot.",";
     }

}
chop($lindahosts);

close (FH);
#print "\n $lindahosts \n";
open (INFILE, $input) ||
         die ("Can't open $input for reading\n");
open (OUTFILE, ">$output") ||
         die ("Can't open $output for writing\n");

print OUTFILE "%NProcShared=4 \n%LindaWorkers=$lindahosts\n";
while (<INFILE>) {
                if (/^--Link1--/){
                   print OUTFILE "$_";
                   print OUTFILE "%NProcShared=4 
\n%LindaWorkers=$lindahosts\n";
                }
                else{
                  next if (/%NProcShared/);
                  next if (/%LindaWorkers/);
                  print OUTFILE "$_";
                }
}
close (INFILE);
close (OUTFILE);


flengyel wrote:
> We've done it, but in SGE 6.0.
> 
> It's not optimal: we use the mpi start and stop scripts that come
> with SGE:
> 
> qconf -sp gauss4
> pe_name           gauss4
> slots             10000
> user_lists        Research deadlineusers
> xuser_lists       NONE
> start_proc_args   /usr/local/sge/mpi/startmpi.sh -catch_rsh $pe_hostfile
> stop_proc_args    /usr/local/sge/mpi/stopmpi.sh
> allocation_rule   $fill_up
> control_slaves    FALSE
> job_is_first_task TRUE
> urgency_slots     min
> 
> 
> A gaussian 09 test script:
> 
> #!/bin/csh
> #$ -S /bin/csh
> #$ -N t_cp.com
> #$ -cwd
> #$ -pe gauss4 16
> #$ -q octo.q
> #$ -R y
> 
> setenv g09root /home/nept/apps64/gaussian-linda
> source ${g09root}/g09/bsd/g09.login
> setenv SGE_ROOT /usr/local/sge
> source  /usr/local/sge/default/common/settings.csh
> setenv GAUSS_SCRDIR     /tmp
> setenv PGI /home/nept/apps64/pgi
> set PATH = ( $PGI/linux86-64/9.0-4/bin  $PATH)
> setenv LM_LICENSE_FILE $PGI/license.dat
> 
> setenv GAUSS_LFLAGS '-vv'
> 
> g09 g09_kayers.gjf
> 
> 
> Now I see that we didn't resolve how g09 is picking up
> which host to go to. This is hardcoded into the scrript,
> which defeats the purpose
> 
> %mem=2000mb
> %nprocshared=8
> %lindaworkers=m63,m64
> ...
> 
> One could  omit the %procshared and
> %lindaworkers statements from the gaussian input file,
> and append these based on the SGE environment.
> This is reminding me that we need to do this. Another group
> at CUNY is running 6.2. A group of us worked it out for them
> at one point--I'll check my email archives.
> 
> We have dual-processor E5420 quads of which two were
> used in this test; we request 16 slots and set
> %nprocshared=8 (each host has 8 cores and we define
> the number of slots/host to be the number of cores).
> 
> By the way, this works with loose integration. We've have
> not had any luck with tight integration.
> 
> Florian Lengyel, Ph.D.
> Assistant Director for Research Computing, IT
> & Adjunct Professor in Computer Science
> CUNY Graduate Center
> 365 Fifth Avenue, Room 4435
> New York, NY 10016
> Web: http://research.gc.cuny.edu
> Phone: 212 817-7374
> ________________________________________
> From: buudo [uschmidt at mpi-halle.de]
> Sent: Friday, December 04, 2009 10:51 AM
> To: users at gridengine.sunsource.net
> Subject: [GE users] Gaussian09 with Linda 8.2
> 
> Dear all,
> I have to configure the parallel environment to run the gaussian09 package with Linda 8.2. There are some unusual variables to create from $pe_hostfile to make a special machines file. As well it seems to me I need a special wrapper script for the ssh communication.  The gaussian09 in  serial works fine. I want have the full control by the sge. has anyone created already a special gauss_linda_start.sh and gauss_linda_stop.sh script ? I am using sge 6.2u4.
> Regards
> Udo
> 
> ------------------------------------------------------
> http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=38&dsMessageId=231381
> 
> To unsubscribe from this discussion, e-mail: [users-unsubscribe at gridengine.sunsource.net].
> 
> ------------------------------------------------------
> http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=38&dsMessageId=231418
> 
> To unsubscribe from this discussion, e-mail: [users-unsubscribe at gridengine.sunsource.net].

------------------------------------------------------
http://gridengine.sunsource.net/ds/viewMessage.do?dsForumId=38&dsMessageId=231421

To unsubscribe from this discussion, e-mail: [users-unsubscribe at gridengine.sunsource.net].



More information about the gridengine-users mailing list