[drmaa-wg] [Fwd: [GE users] Drmaa_synchronise() and qsub-launched jobs]
Peter Troeger
peter.troeger at hpi.uni-potsdam.de
Mon Jul 18 02:37:45 CDT 2005
Consistency is good, so I support your suggestion. Tracker item is here:
https://forge.gridforum.org/tracker/?aid=1568
Regards,
Peter.
Daniel Templeton schrieb:
> Here's another bit that could be clearer in the spec. We don't actually
> specify what happens on drmaa_synchronize() if the jobs don't exist. In
> the SGE implementation, we return immediately, as though the jobs are
> all finished. The drmaa_wait() call only implies that it should fail if
> the job doesn't exist. Both routine descriptions should have a very
> clear statement describing the behavior when the specified job(s)
> doesn't exist. We also should determine what the behavior for
> drmaa_synchronize() should be. I vote for the same as for drmaa_wait(),
> i.e. waiting for a list of jobs that contains invalid (or already waited
> for) job ids will fail. The exception would be waiting for all jobs,
> but we've already had that conversation.
>
> Daniel
>
> -------- Original Message --------
> Subject: [GE users] Drmaa_synchronise() and qsub-launched jobs
> Date: Tue, 12 Jul 2005 15:00:46 -0700
> From: Anthony Metzidis <Anthony.Metzidis at pricegrabber.com>
> Reply-To: users at gridengine.sunsource.net
> To: users at gridengine.sunsource.net
>
>
>
> Hi,
>
> Does drmaa_synchronise() wait on jobs launched using qsub? I'm launching
> many jobs with qsub, and then later collecting the corresponding job ids and
> passing those to drmaa_synchronise(). Although drmaa_synchronise() returns
> without error, it returns before the jobs are complete.
>
> Am I to assume that drmaa_synchronise() only works with jobs launched with
> drmaa_run_job()?
>
> == Code Sample (PERL) ==
> # for writing to qsub
> use IPC::Open2;
> # for timing
> use Time::HiRes;
> use Schedule::DRMAAc qw/ :all /;
> my $job = "md5sum /etc/fstab";
>
> @alljobs = ();
> ( $error, $diagnosis ) = drmaa_init( undef );
> die drmaa_strerror( $error ) . "\n" . $diagnosis if $error;
> foreach $i(0..5){
> open(QSUB_IN);
> open(QSUB_OUT);
>
> my $pid = open2(\*QSUB_OUT, \*QSUB_IN, 'qsub', '-cwd', '-S',
> '/bin/bash', '-N', 'The job' );
>
> print QSUB_IN $job;
> close(QSUB_IN);
>
> my $out = <QSUB_OUT>;
> close(QSUB_OUT);
> ($job_id, $job_name) = ($out =~ /job\s+(\d+)\s+\("(.*)"\)/);
>
> push @alljobs, $job_id;
>
> }
>
> print 'JOBS: [', join '][', @alljobs, "]\n";
> ( $error, $diagnosis ) = drmaa_synchronize( \@alljobs,
> $DRMAA_ERRNO_EXIT_TIMEOUT, 0 );
> die drmaa_strerror( $error ) . "\n" . $diagnosis if $error;
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe at gridengine.sunsource.net
> For additional commands, e-mail: users-help at gridengine.sunsource.net
>
>
>
More information about the drmaa-wg
mailing list