Versions Compared

Key

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

...

|   ├──   ├──   ├──  ├──  benchmarks          # Placeholder for Load and stress tests
 

Directory structure in target

...

IFL call mapping with C-Style and CPP-style binding<WIP>

C-
style binding CPP-style bindingIFL call
Style Binding 
CPP-Style BindingIFL calls
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);

pbs_statresv
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);

pbs_selectjob
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);

pbs_sigjob
drmaa2_error drmaa2_jarray_resume
(drmaa2_jarray ja);

pbs_sigjob
drmaa2_error drmaa2_jarray_hold
(drmaa2_jarray ja);

pbs_holdjob
drmaa2_error drmaa2_jarray_release
(drmaa2_jarray ja);

pbs_rlsjob
drmaa2_error drmaa2_jarray_terminate
(drmaa2_jarray ja);

pbs_deljob
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);

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

pbs_selectjob
drmaa2_j drmaa2_jsession_run_job
(const drmaa2_jsession js, const drmaa2_jtemplate jt);pbs_runjob/pbs_

pbs_runjob
, pbs_asyrunjob
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);

pbs_runjob
/

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

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

pbs_selectjob
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);

pbs_sigjob
drmaa2_error drmaa2_j_resume
(drmaa2_j j);

pbs_sigjob
drmaa2_error drmaa2_j_hold
(drmaa2_j j);
 

pbs_holdjob
drmaa2_error drmaa2_j_release
(drmaa2_j j);

pbs_rlsjob
drmaa2_error drmaa2_j_terminate
(drmaa2_j j);

pbs_deljob
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);

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

pbs_selectjob
drmaa2_r_list drmaa2_msession_get_all_reservations
(const drmaa2_msession ms);

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

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

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

pbs_statnode
/

, pbs_stathost
/
 
,pbs_statvnode


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);
  };
};


...