Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

export LD_LIBRARY_PATH=/usr/lib/libdrmaa2.so ./<drmaa2_app>


IFL call mapping with C-Style and CPP-style

...

binding<WIP>


C-style binding CPP-style bindingIFL call
void drmaa2_jsession_free(drmaa2_jsession * js);

void drmaa2_rsession_free(drmaa2_rsession * rs);

void drmaa2_msession_free(drmaa2_msession * ms);

void drmaa2_j_free (drmaa2_j * j);

void drmaa2_jarray_free (drmaa2_jarray * ja);

void drmaa2_r_free (drmaa2_r * r);

drmaa2_string drmaa2_rsession_get_contact (const drmaa2_rsession rs);

drmaa2_string drmaa2_rsession_get_session_name (const drmaa2_rsession rs);

drmaa2_r drmaa2_rsession_get_reservation (const drmaa2_rsession rs, const drmaa2_string reservationId);
pbs_statresv
drmaa2_r drmaa2_rsession_request_reservation (const drmaa2_rsession rs, const drmaa2_rtemplate rt);
pbs_submit_resv
drmaa2_r_list drmaa2_rsession_get_reservations (const drmaa2_rsession rs);
pbs_statresv
drmaa2_string drmaa2_r_get_id (const drmaa2_r r);

drmaa2_string drmaa2_r_get_session_name (const drmaa2_r r);

drmaa2_rtemplate drmaa2_r_get_reservation_template (const drmaa2_r r);

drmaa2_rinfo drmaa2_r_get_info (const drmaa2_r r);

drmaa2_error drmaa2_r_terminate (drmaa2_r r);
pbs_delresv
drmaa2_string drmaa2_jarray_get_id (const drmaa2_jarray ja);

drmaa2_j_list drmaa2_jarray_get_jobs (const drmaa2_jarray ja);

drmaa2_string drmaa2_jarray_get_session_name (const drmaa2_jarray ja);

drmaa2_jtemplate drmaa2_jarray_get_job_template (const drmaa2_jarray ja);

drmaa2_error drmaa2_jarray_suspend (drmaa2_jarray ja);

drmaa2_error drmaa2_jarray_resume (drmaa2_jarray ja);

drmaa2_error drmaa2_jarray_hold (drmaa2_jarray ja);

drmaa2_error drmaa2_jarray_release (drmaa2_jarray ja);

drmaa2_error drmaa2_jarray_terminate (drmaa2_jarray ja);

drmaa2_string drmaa2_jsession_get_contact (const drmaa2_jsession js);

drmaa2_string drmaa2_jsession_get_session_name (const drmaa2_jsession js);

drmaa2_string_list drmaa2_jsession_get_job_categories (const drmaa2_jsession js);

drmaa2_j_list drmaa2_jsession_get_jobs (const drmaa2_jsession js, const drmaa2_jinfo filter);

drmaa2_jarray drmaa2_jsession_get_job_array (const drmaa2_jsession js, const drmaa2_string jobarrayId);

drmaa2_j drmaa2_jsession_run_job (const drmaa2_jsession js, const drmaa2_jtemplate jt);

drmaa2_jarray drmaa2_jsession_run_bulk_jobs (const drmaa2_jsession js, const drmaa2_jtemplate jt, unsigned long begin_index, unsigned long end_index, unsigned long step, unsigned long max_parallel);

drmaa2_j drmaa2_jsession_wait_any_started (const drmaa2_jsession js, const drmaa2_j_list l, const time_t timeout);

drmaa2_j drmaa2_jsession_wait_any_terminated (const drmaa2_jsession js, const drmaa2_j_list l, const time_t timeout);

drmaa2_string drmaa2_j_get_id (const drmaa2_j j);

drmaa2_string drmaa2_j_get_session_name (const drmaa2_j j);

drmaa2_jtemplate drmaa2_j_get_jt (const drmaa2_j j);

drmaa2_error drmaa2_j_suspend (drmaa2_j j);

drmaa2_error drmaa2_j_resume (drmaa2_j j);

drmaa2_error drmaa2_j_hold (drmaa2_j j);

drmaa2_error drmaa2_j_release (drmaa2_j j);

drmaa2_error drmaa2_j_terminate (drmaa2_j j);

drmaa2_jstate drmaa2_j_get_state (const drmaa2_j j, drmaa2_string * substate);

drmaa2_jinfo drmaa2_j_get_info (const drmaa2_j j);

drmaa2_error drmaa2_j_wait_started (const drmaa2_j j, const time_t timeout);

drmaa2_error drmaa2_j_wait_terminated (const drmaa2_j j, const time_t timeout);

drmaa2_r_list drmaa2_msession_get_all_reservations (const drmaa2_msession ms);

drmaa2_j_list drmaa2_msession_get_all_jobs (const drmaa2_msession ms, const drmaa2_jinfo filter);

drmaa2_queueinfo_list drmaa2_msession_get_all_queues (const drmaa2_msession ms, const drmaa2_string_list names);

drmaa2_machineinfo_list drmaa2_msession_get_all_machines (const drmaa2_msession ms, const drmaa2_string_list names);

drmaa2_string drmaa2_get_drms_name (void);

drmaa2_version drmaa2_get_drms_version (void);

drmaa2_string drmaa2_get_drmaa_name (void);

drmaa2_version drmaa2_get_drmaa_version (void);

drmaa2_bool drmaa2_supports (const drmaa2_capability c);

drmaa2_jsession drmaa2_create_jsession (const char * session_name, const char * contact);

drmaa2_rsession drmaa2_create_rsession (const char * session_name, const char * contact);

drmaa2_jsession drmaa2_open_jsession (const char * session_name);

drmaa2_rsession drmaa2_open_rsession (const char * session_name);

drmaa2_msession drmaa2_open_msession (const char * session_name);

drmaa2_error drmaa2_close_jsession (drmaa2_jsession js);

drmaa2_error drmaa2_close_rsession (drmaa2_rsession rs);

drmaa2_error drmaa2_close_msession (drmaa2_msession ms);

drmaa2_error drmaa2_destroy_jsession (const char * session_name);

drmaa2_error drmaa2_destroy_rsession (const char * session_name);

drmaa2_string_list drmaa2_get_jsession_names (void);

drmaa2_string_list drmaa2_get_rsession_names (void);

drmaa2_error drmaa2_register_event_notification (const drmaa2_callback callback);


CPP-Style binding

Code Block
languagecpp
themeEclipse
titleCPP-style class defination
collapsetrue
  
namespace drmaa2 
{
  /** Forward declaration**/
  class  Job;          
  class  JobArray;    
  struct QueueInfo;
  struct MachineInfo;
  struct SlotInfo;
  class  Reservation;  
  class  JobSession;  
  class  JobTemplate;
  class  JobInfo;
  class  ReservationInfo;
  class  ReservationTemplate;


  class callback 
  {
    public:
      virtual void notify (notification notification);
  };
 
  class Reservation 
  {
    public:
      string               getReservationId       (void) const;
      ReservationSession  getSession              (void) const;
      ReservationTemplate getReservationTemplate (void) const;

      ReservationInfo     getInfo                  (void);
      void                 terminate                (void);
  };


  class JobArray 
  {
    public:
      string       getJobArrayId   (void) const;
      vector <Job> getJobs           (void) const;
      JobSession  getSession        (void) const;
      JobTemplate getJobTemplate   (void) const;

      void         suspend            (void);
      void         resume             (void);
      void         hold               (void);
      void         release            (void);
      void         terminate          (void);
  };

  /**    
    Every ReservationSession instance acts as container for advance reservations
     in the DRM system. Every Reservation instance SHALL belong only to one
        ReservationSession instance
  */
  class ReservationSession 
  {
    public:
      string            getContact         (void) const;
      string            getSessionName    (void) const;

      Reservation       getReservation      (string               reservationId);
      Reservation       requestReservation  (ReservationTemplate reservationTemplate);
      set <Reservation> getReservations     (void);
  };

  /**
     A job session instance acts as container for job instances controlled
     through the DRMAA API. The session methods support the submission of new
     jobs and the monitoring of existing jobs
  */

  class JobSession 
  {
    public:
      string       getSontact        (void) const;
      string       getSessionName   (void) const;
      set <string> getJobCategories (void) const;

      vector <job> getJobs            (JobInfo       filter);
      JobArray    getJobArray        (string         jobArrayId);
      job          runJob             (JobTemplate   jobTemplate);

      JobArray    runBulkJobs        (JobTemplate   jobTemplate,
                                       long           beginIndex,
                                       long           endIndex,
                                       long           step,
                                       long           maxParallel);
      job          waitAnyStarted     (vector <job> jobs, time_t timeout);
      job          waitAnyTerminated  (vector <job> jobs, time_t timeout);
  };

  /**
    The MonitoringSession interface provides a set of stateless methods for 
    fetching information about the DRM system and the DRMAA implementation itself.
  */
  class MonitoringSession 
  {
    public:
      set <Reservation>  getAllReservations (void);
      vector <Job>       getAllJobs         (JobInfo     filter);
      set <QueueInfo>   getAllQueues       (set <string> names);
      set <MachineInfo> getAllMachines     (set <string> names);
  };
  /**
    The SessionManager interface is the main interface of a DRMAA implementation for
        establishing communication with the DRM system. By the help of this interface, sessions
        for job management, monitoring,and/or reservation management can be maintained.
   */

  class SessionManager 
  {
    public:
      string              getDrmsName             (void) const;
      version             getDrmsVersion          (void) const;
      version             getDrmaaVersion         (void) const;

      bool                supports                  (capability          capability);
      JobSession         createJobSession          (string              sessionName, 
                                                     string              contactString);
      ReservationSession createReservationSession  (string              sessionName,  
                                                     string              contactString);
      MonitoringSession  createMonitoringSession   (string              contactString);
      JobSession         openJobSession            (string              sessionName);
      ReservationSession openReservationSession    (string              sessionName);
      void                closeJobSession           (JobSession         s);
      void                closeReservationSession   (ReservationSession s);
      void                closeMonitoringSession    (MonitoringSession  s);
      void                destroyJobSession         (string              sessionName);
      void                destroyReservationSession (string              sessionName);
      set <string>        getJobSessions            (void);
      set <string>        getReservationSessions    (void);
      void                registerEventNotification (callback            callback);
  };
};


...