Skip to content
  1. Jan 28, 2016
    • Jonas Hahnfeld's avatar
      [OMPT] Add support for ompt_event_task_dependences and ompt_event_task_dependence_pair · 39b68624
      Jonas Hahnfeld authored
      The attached patch adds support for ompt_event_task_dependences and
      ompt_event_task_dependence_pair events from the OMPT specification [1]. These
      events only apply to OpenMP 4.0 and 4.1 (aka 4.5) because task dependencies
      were introduced in 4.0.
      
      With respect to the changes:
      
      ompt_event_task_dependences
      According to the specification, this event is raised after the task has been
      created, thefore this event needs to be raised after ompt_event_task_begin
      (in __kmp_task_start). However, the dependencies are known at
      __kmpc_omp_task_with_deps which occurs before __kmp_task_start. My modifications
      extend the ompt_task_info_t struct in order to store the dependencies of the
      task when _kmpc_omp_task_with_deps occurs and then they are emitted in
      __kmp_task_start just after raising the ompt_event_task_begin. The deps field
      is allocated and valid until the event is raised and it is freed and set
      to null afterwards.
      
      ompt_event_task_dependence_pair
      The processing of the dependences (i.e. checking whenever a dependence is
      already satisfied) is done within __kmp_process_deps. That function checks
      every dependence and calls the __kmp_track_dependence routine which gives some
      support for graphical output. I used that routine to emit the dependence pair
      but I also needed to know the sink_task. Despite the fact that the code within
      KMP_SUPPORT_GRAPH_OUTPUT refers to task_sink it may be null because
      sink->dn.task (there's a comment regarding this) and in fact it does not point
      to a proper pointer value because the value is set in node->dn.task = task;
      after the __kmp_process_deps calls in __kmp_check_deps. I have extended the
      __kmp_process_deps and __kmp_track_dependence parameter list to receive the
      sink_task.
      
      [1] https://github.com/OpenMPToolsInterface/OMPT-Technical-Report/blob/target/ompt-tr.pdf
      
      Patch by Harald Servat
      Differential Revision: http://reviews.llvm.org/D14746
      
      llvm-svn: 259038
      39b68624
  2. Nov 11, 2015
  3. Nov 09, 2015
  4. Oct 16, 2015
    • Jonathan Peyton's avatar
      [OMPT] Add OMPT events for API locking · 0e6d4577
      Jonathan Peyton authored
      This fix implements the following OMPT events for the API locking routines:
      * ompt_event_acquired_lock
      * ompt_event_acquired_nest_lock_first
      * ompt_event_acquired_nest_lock_next
      * ompt_event_init_lock
      * ompt_event_init_nest_lock
      * ompt_event_destroy_lock
      * ompt_event_destroy_nest_lock
      
      For the acquired events the depths of the locks ist required, so a return value
      was added similiar to the return values we already have for the release lock
      routines.
      
      Patch by Tim Cramer
      
      Differential Revision: http://reviews.llvm.org/D13689
      
      llvm-svn: 250526
      0e6d4577
  5. Apr 29, 2015
Loading