Module: DRMAA
- Defined in:
- lib/ood_core/job/adapters/drmaa.rb,
lib/ood_core/refinements/drmaa_extensions.rb
Defined Under Namespace
Classes: DRMAAAlreadyActiveSessionError, DRMAAAuthenticationError, DRMAACommunicationError, DRMAAConflictingAttributeValuesError, DRMAADefaultContactError, DRMAADeniedError, DRMAAException, DRMAAHoldInconsistent, DRMAAInternalError, DRMAAInvalidArgumentError, DRMAAInvalidAttributeFormatError, DRMAAInvalidAttributeValueError, DRMAAInvalidContactError, DRMAAInvalidJobError, DRMAANoActiveSessionError, DRMAANoDefaultContactSelected, DRMAANoMemoryError, DRMAANoMoreElements, DRMAAReleaseInconsistent, DRMAAResumeInconsistent, DRMAASessionExitError, DRMAASessionInitError, DRMAASuspendInconsistent, DRMAATimeoutExit, DRMAATryLater, JobInfo, JobTemplate, Session, SessionSingleton
Constant Summary collapse
- STATE_UNDETERMINED =
drmaa_job_ps() constants
0x00- STATE_QUEUED_ACTIVE =
0x10- STATE_SYSTEM_ON_HOLD =
0x11- STATE_USER_ON_HOLD =
0x12- STATE_USER_SYSTEM_ON_HOLD =
0x13- STATE_RUNNING =
0x20- STATE_SYSTEM_SUSPENDED =
0x21- STATE_USER_SUSPENDED =
0x22- STATE_USER_SYSTEM_SUSPENDED =
0x23- STATE_DONE =
0x30- STATE_FAILED =
0x40- ACTION_SUSPEND =
drmaa_control() constants
0- ACTION_RESUME =
1- ACTION_HOLD =
2- ACTION_RELEASE =
3- ACTION_TERMINATE =
4- PLACEHOLDER_INCR =
placeholders for job input/output/error path and working dir
"$drmaa_incr_ph$"- PLACEHOLDER_HD =
"$drmaa_hd_ph$"- PLACEHOLDER_WD =
"$drmaa_wd_ph$"- DRMMA_TO_OOD_STATE_MAP =
{ DRMAA::STATE_UNDETERMINED => :undetermined, DRMAA::STATE_QUEUED_ACTIVE => :queued, DRMAA::STATE_SYSTEM_ON_HOLD => :queued_held, DRMAA::STATE_USER_ON_HOLD => :queued_held, DRMAA::STATE_USER_SYSTEM_ON_HOLD => :queued_held, DRMAA::STATE_RUNNING => :running, DRMAA::STATE_SYSTEM_SUSPENDED => :suspended, DRMAA::STATE_USER_SUSPENDED => :suspended, DRMAA::STATE_USER_SYSTEM_SUSPENDED => :suspended, DRMAA::STATE_DONE => :completed, DRMAA::STATE_FAILED => :completed }
Class Method Summary collapse
-
.allocate_job_template ⇒ Object
int drmaa_allocate_job_template(drmaa_job_template_t **, char *, size_t).
-
.attributes ⇒ Object
int drmaa_get_attribute_names(drmaa_attr_names_t **, char *, size_t).
-
.contact ⇒ Object
returns string specifying contact information int drmaa_get_contact(char *, size_t, char *, size_t).
-
.control(job, action) ⇒ Object
int drmaa_control(const char *, int , char *, size_t ).
-
.delete_job_template(jt) ⇒ Object
int drmaa_delete_job_template(drmaa_job_template_t *, char *, size_t).
-
.drm_system ⇒ Object
returns string specifying the DRM system int drmaa_get_drm_system(char *, size_t , char *, size_t).
-
.drmaa_implementation ⇒ Object
returns string specifying DRMAA implementation int drmaa_get_DRMAA_implementation(char *, size_t , char *, size_t).
- .errno2str(drmaa_errno) ⇒ Object
-
.exit ⇒ Object
int drmaa_exit(char *, size_t).
- .get_all(ids, nxt, rls) ⇒ Object
-
.get_attr_names(names) ⇒ Object
int drmaa_get_next_attr_name(drmaa_attr_names_t*, char *, size_t ) void drmaa_release_attr_names(drmaa_attr_names_t*).
-
.get_attr_values(ids) ⇒ Object
int drmaa_get_next_attr_value(drmaa_attr_values_t*, char *, size_t ) void drmaa_release_attr_values(drmaa_attr_values_t*).
-
.get_attribute(jt, name) ⇒ Object
int drmaa_get_attribute(drmaa_job_template_t *, const char *, char *, size_t , char *, size_t).
-
.get_job_ids(ids) ⇒ Object
int drmaa_get_next_job_id(drmaa_job_ids_t*, char *, size_t ) void drmaa_release_job_ids(drmaa_job_ids_t*).
-
.get_vector_attribute(jt, name) ⇒ Object
int drmaa_get_vector_attribute(drmaa_job_template_t *, const char *, drmaa_attr_values_t **, char *, size_t ).
-
.init(contact) ⇒ Object
int drmaa_init(const char *, char *, size_t).
-
.job_ps(job) ⇒ Object
int drmaa_job_ps( const char *, int *, char *, size_t ).
-
.run_bulk_jobs(jt, first, last, incr) ⇒ Object
int drmaa_run_bulk_jobs(drmaa_job_ids_t **, const drmaa_job_template_t *jt, int, int, int, char *, size_t).
-
.run_job(jt) ⇒ Object
int drmaa_run_job(char *, size_t, const drmaa_job_template_t *, char *, size_t).
-
.set_attribute(jt, name, value) ⇒ Object
int drmaa_set_attribute(drmaa_job_template_t *, const char *, const char *, char *, size_t).
-
.set_vector_attribute(jt, name, ary) ⇒ Object
int drmaa_set_vector_attribute(drmaa_job_template_t *, const char *, const char *value[], char *, size_t).
- .str2errno(str) ⇒ Object
-
.strerror(errno) ⇒ Object
const char *drmaa_strerror(int drmaa_errno).
-
.synchronize(jobs, timeout, dispose) ⇒ Object
int drmaa_synchronize(const char *job_ids[], signed long timeout, int dispose, char *, size_t).
- .throw(r, diag) ⇒ Object
-
.vector_attributes ⇒ Object
int drmaa_get_vector_attribute_names(drmaa_attr_names_t **, char *, size_t).
-
.version ⇒ Object
returns DRMAA version (e.g. 1.0 or 0.95) int drmaa_version(unsigned int *, unsigned int *, char *, size_t ).
-
.wait(jobid, timeout) ⇒ Object
int drmaa_wait(const char *, char *, size_t , int *, signed long , drmaa_attr_values_t **, char *, size_t );.
-
.wcoredump(stat) ⇒ Object
int drmaa_wcoredump(int *, int , char *, size_t).
-
.wexitstatus(stat) ⇒ Object
int drmaa_wexitstatus(int *, int, char *, size_t).
- .wif(stat, method) ⇒ Object
-
.wifaborted(stat) ⇒ Object
int drmaa_wifaborted(int *, int , char *, size_t).
-
.wifexited(stat) ⇒ Object
int drmaa_wifexited(int *, int, char *, size_t).
-
.wifsignaled(stat) ⇒ Object
int drmaa_wifsignaled(int *, int, char *, size_t).
-
.wtermsig(stat) ⇒ Object
int drmaa_wtermsig(char *signal, size_t signal_len, int stat, char *error_diagnosis, size_t error_diag_len);.
Class Method Details
.allocate_job_template ⇒ Object
int drmaa_allocate_job_template(drmaa_job_template_t **, char *, size_t)
333 334 335 336 337 338 339 340 341 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 333 def DRMAA.allocate_job_template err=" " * ErrSize jt = FFI::MemoryPointer.new :pointer r = FFI_DRMAA.drmaa_allocate_job_template jt, err, ErrSize r1 = [jt,err,ErrSize] DRMAA.throw(r, r1[1]) return jt end |
.attributes ⇒ Object
int drmaa_get_attribute_names(drmaa_attr_names_t **, char *, size_t)
362 363 364 365 366 367 368 369 370 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 362 def DRMAA.attributes() err="" (0..100).each { |x| err << " "} jt = FFI::MemoryPointer.new :pointer r = FFI_DRMAA.get_attribute_names jt, err, ErrSize r1 = [jt,err,ErrSize] DRMAA.throw(r, r1[1]) return DRMAA.get_attr_names(jt) end |
.contact ⇒ Object
returns string specifying contact information int drmaa_get_contact(char *, size_t, char *, size_t)
252 253 254 255 256 257 258 259 260 261 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 252 def DRMAA.contact contact = " " * ErrSize err = " " * ErrSize r,r1 = FFI_DRMAA.drmaa_get_contact(contact, ErrSize, err, ErrSize) r1 = [contact, ErrSize, err, ErrSize] contact.delete! "\000" contact.strip! DRMAA.throw(r, r1[2]) return r1[0] end |
.control(job, action) ⇒ Object
int drmaa_control(const char *, int , char *, size_t )
306 307 308 309 310 311 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 306 def DRMAA.control(job, action) err = ' ' * ErrSize r = FFI_DRMAA.drmaa_control(job, action, err, ErrSize) r1 = [job, action, err, ErrSize] DRMAA.throw(r, r1[2]) end |
.delete_job_template(jt) ⇒ Object
int drmaa_delete_job_template(drmaa_job_template_t *, char *, size_t)
344 345 346 347 348 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 344 def DRMAA.delete_job_template(jt) err = EC r,r1 = @drmaa_delete_job_template.call(jt.ptr, err, ErrSize) DRMAA.throw(r, r1[1]) end |
.drm_system ⇒ Object
returns string specifying the DRM system int drmaa_get_drm_system(char *, size_t , char *, size_t)
239 240 241 242 243 244 245 246 247 248 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 239 def DRMAA.drm_system drm = " " * 20 err = " " * ErrSize r = FFI_DRMAA.drmaa_get_DRM_system(drm, 20, err, ErrSize) r1 = [drm, 20, err, ErrSize] DRMAA.throw(r, r1[2]) drm.delete! "\000" drm.strip! return r1[0] end |
.drmaa_implementation ⇒ Object
returns string specifying DRMAA implementation int drmaa_get_DRMAA_implementation(char *, size_t , char *, size_t)
265 266 267 268 269 270 271 272 273 274 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 265 def DRMAA.drmaa_implementation err = " " * ErrSize impl = " " * 30 r = FFI_DRMAA.drmaa_get_DRMAA_implementation(impl, 30, err, ErrSize) r1 = [impl, 30, err, ErrSize] DRMAA.throw(r, r1[2]) impl.delete! "\000" impl.strip! return r1[0] end |
.errno2str(drmaa_errno) ⇒ Object
207 208 209 210 211 212 213 214 215 216 217 218 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 207 def DRMAA.errno2str(drmaa_errno) # stack = caller # puts stack if DRMAA.version < 1.0 s = ERRNO_MAP_095.find{ |pair| pair[1] == drmaa_errno }[0] else s = ERRNO_MAP_100.find{ |pair| pair[1] == drmaa_errno }[0] end s = "DRMAA_ERRNO_INTERNAL_ERROR" if s.nil? puts "errno2str(" + drmaa_errno.to_s + ") = " + s return s end |
.exit ⇒ Object
int drmaa_exit(char *, size_t)
325 326 327 328 329 330 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 325 def DRMAA.exit err=" " * ErrSize r = FFI_DRMAA.drmaa_exit err, ErrSize-1 r1 = [err,ErrSize-1] DRMAA.throw(r, r1[0]) end |
.get_all(ids, nxt, rls) ⇒ Object
372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 372 def DRMAA.get_all(ids, nxt, rls) if DRMAA.version < 1.0 errno_expect = DRMAA.str2errno("DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE") else errno_expect = DRMAA.str2errno("DRMAA_ERRNO_NO_MORE_ELEMENTS") end # STDERR.puts "get_all(1)" values = Array.new ret = 0 while ret != errno_expect do # STDERR.puts "get_all(2) " + DRMAA.errno2str(ret) err=" " * ErrSize jobid=" " * ErrSize r = FFI_DRMAA.send(nxt,ids.get_pointer(0), jobid, ErrSize) jobid = jobid.unpack('Z*')[0] # unpack null-terminated string , return first value r1 = [ids.get_pointer(0),jobid,ErrSize] if r != errno_expect DRMAA.throw(r, "unexpected error") values.push(r1[1]) # puts "get_all(3) " + DRMAA.errno2str(r) end ret = r end # puts "get_all(4)" FFI_DRMAA.send(rls,ids.get_pointer(0)) return values end |
.get_attr_names(names) ⇒ Object
int drmaa_get_next_attr_name(drmaa_attr_names_t*, char *, size_t ) void drmaa_release_attr_names(drmaa_attr_names_t*)
411 412 413 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 411 def DRMAA.get_attr_names(names) return DRMAA.get_all(names, :drmaa_get_next_attr_name, :drmaa_release_attr_names) end |
.get_attr_values(ids) ⇒ Object
int drmaa_get_next_attr_value(drmaa_attr_values_t*, char *, size_t ) void drmaa_release_attr_values(drmaa_attr_values_t*)
417 418 419 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 417 def DRMAA.get_attr_values(ids) return DRMAA.get_all(ids, :drmaa_get_next_attr_value, :drmaa_release_attr_values) end |
.get_attribute(jt, name) ⇒ Object
int drmaa_get_attribute(drmaa_job_template_t *, const char *, char *,
size_t , char *, size_t)
562 563 564 565 566 567 568 569 570 571 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 562 def DRMAA.get_attribute(jt, name) err = " " * ErrSize value = " " * ErrSize r = FFI_DRMAA.drmaa_get_attribute jt.get_pointer(0), name, value, ErrSize, err, ErrSize value = value.unpack('Z*')[0] # unpack null-terminated string , return first value r1 = [jt.get_pointer(0), name, value, ErrSize, err, ErrSize] DRMAA.throw(r, r1[3]) return r1[2] end |
.get_job_ids(ids) ⇒ Object
int drmaa_get_next_job_id(drmaa_job_ids_t*, char *, size_t ) void drmaa_release_job_ids(drmaa_job_ids_t*)
404 405 406 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 404 def DRMAA.get_job_ids(ids) return DRMAA.get_all(ids, :drmaa_get_next_job_id, :drmaa_release_job_ids) end |
.get_vector_attribute(jt, name) ⇒ Object
int drmaa_get_vector_attribute(drmaa_job_template_t *, const char *,
drmaa_attr_values_t **, char *, size_t )
575 576 577 578 579 580 581 582 583 584 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 575 def DRMAA.get_vector_attribute(jt, name) err=" " * ErrSize attr = FFI::MemoryPointer.new :pointer r = FFI_DRMAA.drmaa_get_vector_attribute jt.get_pointer(0), name, attr, err, ErrSize r1 = [jt.get_pointer(0), name, attr, err, ErrSize] DRMAA.throw(r, r1[3]) # Original author had a method called "drmaa_get_vector_attribute" that did the same thing as this return DRMAA.get_attr_values(attr) end |
.init(contact) ⇒ Object
int drmaa_init(const char *, char *, size_t)
315 316 317 318 319 320 321 322 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 315 def DRMAA.init(contact) err=" " * ErrSize r = FFI_DRMAA.drmaa_init contact, err, ErrSize-1 r1 = [contact,err,ErrSize-1] contact.delete! "\000" contact.strip! DRMAA.throw(r, r1[1]) end |
.job_ps(job) ⇒ Object
int drmaa_job_ps( const char *, int *, char *, size_t )
296 297 298 299 300 301 302 303 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 296 def DRMAA.job_ps(job) err = " " * ErrSize state = FFI::MemoryPointer.new(:int,4) r = FFI_DRMAA.drmaa_job_ps(job, state, err, ErrSize) r1 = [job, state.read_int, err, ErrSize] DRMAA.throw(r, r1[2]) return r1[1] end |
.run_bulk_jobs(jt, first, last, incr) ⇒ Object
int drmaa_run_bulk_jobs(drmaa_job_ids_t **, const drmaa_job_template_t *jt,
int, int, int, char *, size_t)
502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 502 def DRMAA.run_bulk_jobs(jt, first, last, incr) err = " " * ErrSize #strptrs = [] #numJobs = (last - first + 1) / incr #numJobs.times {|i| strptrs << FFI::MemoryPointer.from_string(i) } #strptrs << nil #ids = FFI::MemoryPointer.new(:pointer,strptrs.length) #strptrs.each_with_index do |p,i| # ids[i].put_pointer(0, p) #end ids = FFI::MemoryPointer.new :pointer r = FFI_DRMAA.drmaa_run_bulk_jobs(ids, jt.get_pointer(0), first, last, incr, err, ErrSize) r1 = [ids, jt, first, last, incr, err, ErrSize] DRMAA.throw(r, r1[5]) return DRMAA.get_job_ids(ids) end |
.run_job(jt) ⇒ Object
int drmaa_run_job(char *, size_t, const drmaa_job_template_t *, char *, size_t)
520 521 522 523 524 525 526 527 528 529 530 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 520 def DRMAA.run_job(jt) err=" " * ErrSize jobid=" " * ErrSize r = FFI_DRMAA.drmaa_run_job jobid, ErrSize, jt.get_pointer(0), err, ErrSize r1 = [jobid,ErrSize,jt.get_pointer(0), err, ErrSize] jobid.delete! "\000" jobid.strip! DRMAA.throw(r, r1[3]) return r1[0] end |
.set_attribute(jt, name, value) ⇒ Object
int drmaa_set_attribute(drmaa_job_template_t *, const char *, const char *, char *, size_t)
533 534 535 536 537 538 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 533 def DRMAA.set_attribute(jt, name, value) err=" " * ErrSize r = FFI_DRMAA.drmaa_set_attribute jt.get_pointer(0), name, value, err, ErrSize r1 = [jt.get_pointer(0),name,value,err,ErrSize] DRMAA.throw(r, r1[3]) end |
.set_vector_attribute(jt, name, ary) ⇒ Object
int drmaa_set_vector_attribute(drmaa_job_template_t *, const char *,
const char *value[], char *, size_t)
542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 542 def DRMAA.set_vector_attribute(jt, name, ary) err=" " * ErrSize ary.flatten! strptrs = [] ary.each { |x| strptrs << FFI::MemoryPointer.from_string(x) } strptrs << nil argv = FFI::MemoryPointer.new(:pointer,strptrs.length) strptrs.each_with_index do |p,i| argv[i].put_pointer(0, p) end r = FFI_DRMAA.drmaa_set_vector_attribute jt.get_pointer(0), name, argv, err, ErrSize r1 = [jt.get_pointer(0),name, argv, err, ErrSize] DRMAA.throw(r, r1[3]) end |
.str2errno(str) ⇒ Object
220 221 222 223 224 225 226 227 228 229 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 220 def DRMAA.str2errno(str) if DRMAA.version < 1.0 errno = ERRNO_MAP_095.find{ |pair| pair[0] == str }[1] else errno = ERRNO_MAP_100.find{ |pair| pair[0] == str }[1] end errno = 1 if errno.nil? # internal error # puts "str2errno(" + str + ") = " + errno.to_s return errno end |
.strerror(errno) ⇒ Object
const char *drmaa_strerror(int drmaa_errno)
290 291 292 293 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 290 def DRMAA.strerror(errno) r = @drmaa_strerror.call(drmaa_errno) return r.to_s end |
.synchronize(jobs, timeout, dispose) ⇒ Object
int drmaa_synchronize(const char *job_ids[], signed long timeout, int dispose, char *, size_t)
587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 587 def DRMAA.synchronize(jobs, timeout, dispose) err = " " * ErrSize if dispose == false disp = 0 else disp = 1 end errno_timeout = DRMAA.str2errno("DRMAA_ERRNO_EXIT_TIMEOUT") jobs.flatten! strptrs = [] jobs.each { |x| strptrs << FFI::MemoryPointer.from_string(x) } strptrs << nil job_ids = FFI::MemoryPointer.new(:pointer,strptrs.length) strptrs.each_with_index do |p,i| job_ids[i].put_pointer(0, p) end r = FFI_DRMAA.drmaa_synchronize job_ids, timeout, disp, err, ErrSize r1 = [job_ids, timeout, disp, err, ErrSize] if r == errno_timeout return false else DRMAA.throw(r, r1[3]) return true end end |
.throw(r, diag) ⇒ Object
613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 613 def DRMAA.throw(r, diag) return if r == 0 s_errno = DRMAA.errno2str(r) case s_errno when "DRMAA_ERRNO_INTERNAL_ERROR" raise DRMAAInternalError, diag when "DRMAA_ERRNO_DRM_COMMUNICATION_FAILURE" raise DRMAACommunicationError, diag when "DRMAA_ERRNO_AUTH_FAILURE" raise DRMAAAuthenticationError, diag when "DRMAA_ERRNO_INVALID_ARGUMENT" raise DRMAAInvalidArgumentError, diag when "DRMAA_ERRNO_NO_ACTIVE_SESSION" raise DRMAANoActiveSessionError, diag when "DRMAA_ERRNO_NO_MEMORY" raise DRMAANoMemoryError, diag when "DRMAA_ERRNO_INVALID_CONTACT_STRING" raise DRMAAInvalidContactError, diag when "DRMAA_ERRNO_DEFAULT_CONTACT_STRING_ERROR" raise DRMAADefaultContactError, diag when "DRMAA_ERRNO_NO_DEFAULT_CONTACT_STRING_SELECTED" raise DRMAANoDefaultContactSelected, diag when "DRMAA_ERRNO_DRMS_INIT_FAILED" raise DRMAASessionInitError, diag when "DRMAA_ERRNO_ALREADY_ACTIVE_SESSION" raise DRMAAAlreadyActiveSessionError, diag when "DRMAA_ERRNO_DRMS_EXIT_ERROR" raise DRMAASessionExitError, diag when "DRMAA_ERRNO_INVALID_ATTRIBUTE_FORMAT" raise DRMAAInvalidAttributeFormatError, diag when "DRMAA_ERRNO_INVALID_ATTRIBUTE_VALUE" raise DRMAAInvalidAttributeValueError, diag when "DRMAA_ERRNO_CONFLICTING_ATTRIBUTE_VALUES" raise DRMAAConflictingAttributeValuesError, diag when "DRMAA_ERRNO_TRY_LATER" raise DRMAATryLater, diag when "DRMAA_ERRNO_DENIED_BY_DRM" raise DRMAADeniedError, diag when "DRMAA_ERRNO_INVALID_JOB" raise DRMAAInvalidJobError, diag when "DRMAA_ERRNO_RESUME_INCONSISTENT_STATE" raise DRMAAResumeInconsistent, diag when "DRMAA_ERRNO_SUSPEND_INCONSISTENT_STATE" raise DRMAASuspendInconsistent, diag when "DRMAA_ERRNO_HOLD_INCONSISTENT_STATE" raise DRMAAHoldInconsistent, diag when "DRMAA_ERRNO_RELEASE_INCONSISTENT_STATE" raise DRMAAReleaseInconsistent, diag when "DRMAA_ERRNO_EXIT_TIMEOUT" raise DRMAATimeoutExit, diag when "DRMAA_ERRNO_NO_RUSAGE" raise DRMAANoRusage, diag when "DRMAA_ERRNO_NO_MORE_ELEMENTS" raise DRMAANoMoreElements, diag end end |
.vector_attributes ⇒ Object
int drmaa_get_vector_attribute_names(drmaa_attr_names_t **, char *, size_t)
351 352 353 354 355 356 357 358 359 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 351 def DRMAA.vector_attributes() err="" (0..100).each { |x| err << " "} jt = FFI::MemoryPointer.new :pointer r = FFI_DRMAA.drmaa_get_vector_attribute_names jt, err, ErrSize r1 = [jt,err,ErrSize] DRMAA.throw(r, r1[1]) return DRMAA.get_attr_names(jt) end |
.version ⇒ Object
returns DRMAA version (e.g. 1.0 or 0.95) int drmaa_version(unsigned int *, unsigned int *, char *, size_t )
278 279 280 281 282 283 284 285 286 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 278 def DRMAA.version err= " " * ErrSize major = FFI::MemoryPointer.new(:int, 1) minor = FFI::MemoryPointer.new(:int, 1) r = FFI_DRMAA.drmaa_version major,minor, err, ErrSize r1 = [major.read_int,minor.read_int, err, ErrSize] DRMAA.throw(r, r1[2]) @version = r1[0] + (Float(r1[1])/100) end |
.wait(jobid, timeout) ⇒ Object
int drmaa_wait(const char *, char *, size_t , int *, signed long ,
drmaa_attr_values_t **, char *, size_t );
477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 477 def DRMAA.wait(jobid, timeout) errno_timeout = DRMAA.str2errno("DRMAA_ERRNO_EXIT_TIMEOUT") errno_no_rusage = DRMAA.str2errno("DRMAA_ERRNO_NO_RUSAGE") err = " " * ErrSize waited = " " * WaitSize stat = FFI::MemoryPointer.new(:int,4) usage = FFI::MemoryPointer.new :pointer, 1 r = FFI_DRMAA.drmaa_wait jobid, waited, WaitSize, stat, timeout, usage, err, ErrSize r1 = [jobid, waited, WaitSize, stat, timeout, usage, err, ErrSize] # getting null's at end of string waited.delete! "\000" waited.strip! return nil if r == errno_timeout if r != errno_no_rusage DRMAA.throw(r, r1[6]) return JobInfo.new(r1[1], r1[3], usage) else return JobInfo.new(r1[1], r1[3]) end end |
.wcoredump(stat) ⇒ Object
int drmaa_wcoredump(int *, int , char *, size_t)
437 438 439 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 437 def DRMAA.wcoredump(stat) return DRMAA.wif(stat, :drmaa_wcoredump) end |
.wexitstatus(stat) ⇒ Object
int drmaa_wexitstatus(int *, int, char *, size_t)
456 457 458 459 460 461 462 463 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 456 def DRMAA.wexitstatus(stat) err = " " * ErrSize ret = FFI::MemoryPointer.new(:int,4) r = FFI_DRMAA.drmaa_wexitstatus(ret, stat, err, ErrSize) r1 = [ret, stat, err, ErrSize] DRMAA.throw(r, r1[2]) return r1[0].read_int end |
.wif(stat, method) ⇒ Object
441 442 443 444 445 446 447 448 449 450 451 452 453 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 441 def DRMAA.wif(stat, method) err = " " * ErrSize intp = FFI::MemoryPointer.new(:int,4) r = FFI_DRMAA.send(method, intp, stat, err, ErrSize) r1 = [intp, stat, err, ErrSize] DRMAA.throw(r, r1[2]) boo = r1[0].read_int if boo == 0 return false else return true end end |
.wifaborted(stat) ⇒ Object
int drmaa_wifaborted(int *, int , char *, size_t)
432 433 434 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 432 def DRMAA.wifaborted(stat) return DRMAA.wif(stat, :drmaa_wifaborted) end |
.wifexited(stat) ⇒ Object
int drmaa_wifexited(int *, int, char *, size_t)
422 423 424 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 422 def DRMAA.wifexited(stat) return DRMAA.wif(stat, :drmaa_wifexited) end |
.wifsignaled(stat) ⇒ Object
int drmaa_wifsignaled(int *, int, char *, size_t)
427 428 429 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 427 def DRMAA.wifsignaled(stat) return DRMAA.wif(stat, :drmaa_wifsignaled) end |
.wtermsig(stat) ⇒ Object
int drmaa_wtermsig(char *signal, size_t signal_len, int stat, char *error_diagnosis, size_t error_diag_len);
466 467 468 469 470 471 472 473 |
# File 'lib/ood_core/job/adapters/drmaa.rb', line 466 def DRMAA.wtermsig(stat) err = " " * ErrSize signal = " " * ErrSize r = FFI_DRMAA.drmaa_wtermsig(signal, ErrSize, stat, err, ErrSize) r1 = [signal, ErrSize, stat, err, ErrSize] DRMAA.throw(r, r1[3]) return r1[0] end |