DistributedProfiler Derived Type

type, public, extends(BaseProfiler) :: DistributedProfiler


Inherits

type~~distributedprofiler~~InheritsGraph type~distributedprofiler DistributedProfiler type~abstractgauge AbstractGauge type~distributedprofiler->type~abstractgauge gauge type~baseprofiler BaseProfiler type~distributedprofiler->type~baseprofiler type~meternode MeterNode type~baseprofiler->type~meternode root_node type~meternodestack MeterNodeStack type~baseprofiler->type~meternodestack stack type~abstractmeter AbstractMeter type~meternode->type~abstractmeter meter type~abstractmeternode AbstractMeterNode type~meternode->type~abstractmeternode type~meternodevector MeterNodeVector type~meternode->type~meternodevector children type~vector_wrapper~16 vector_wrapper type~meternodestack->type~vector_wrapper~16 elements type~v_wrapper~3 v_Wrapper type~meternodevector->type~v_wrapper~3 elements type~meternodeptr MeterNodePtr type~vector_wrapper~16->type~meternodeptr item

Inherited by

type~~distributedprofiler~~InheritedByGraph type~distributedprofiler DistributedProfiler type~mapl_metacomp MAPL_MetaComp type~mapl_metacomp->type~distributedprofiler t_profiler type~maplframework MaplFramework type~maplframework->type~distributedprofiler time_profiler type~stubprofiler StubProfiler type~stubprofiler->type~distributedprofiler type~historytrajectory HistoryTrajectory type~historytrajectory->type~mapl_metacomp GENSTATE type~masksamplergeosat MaskSamplerGeosat type~masksamplergeosat->type~mapl_metacomp GENSTATE type~stationsampler StationSampler type~stationsampler->type~mapl_metacomp GENSTATE type~historycollection~2 HistoryCollection type~historycollection~2->type~historytrajectory trajectory type~historycollection~2->type~masksamplergeosat mask_sampler type~historycollection~2->type~stationsampler station_sampler type~historycollectionvectoriterator~2 HistoryCollectionVectorIterator type~historycollectionvectoriterator~2->type~historycollection~2 elements type~historycollectionvectorriterator~2 HistoryCollectionVectorRIterator type~historycollectionvectorriterator~2->type~historycollection~2 elements type~historycollectionvector~2 HistoryCollectionVector type~historycollectionvector~2->type~historycollection~2 elements

Constructor

public interface DistributedProfiler

  • private function new_DistributedProfiler(name, gauge, comm, comm_world) result(distributed_profiler)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: name
    class(AbstractGauge), intent(in) :: gauge
    integer, intent(in) :: comm
    integer, intent(in), optional :: comm_world

    Return Value type(DistributedProfiler), target


Type-Bound Procedures

procedure, public :: accumulate

  • private recursive subroutine accumulate(a, b)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout), target :: a
    class(BaseProfiler), intent(in), target :: b

generic, public :: assignment(=) => copy

  • private subroutine copy(new, old)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout), target :: new
    class(BaseProfiler), intent(in), target :: old

procedure, public :: begin => begin_profiler

  • private function begin_profiler(this) result(iterator)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(in), target :: this

    Return Value type(BaseProfilerIterator)

procedure, public :: copy

  • private subroutine copy(new, old)

    Arguments

    Type IntentOptional Attributes Name
    class(DistributedProfiler), intent(inout), target :: new
    class(BaseProfiler), intent(in), target :: old

procedure, public :: copy_profiler

  • private subroutine copy_profiler(new, old)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout), target :: new
    class(BaseProfiler), intent(in), target :: old

procedure, public :: end => end_profiler

  • private function end_profiler(this) result(iterator)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(in), target :: this

    Return Value type(BaseProfilerIterator)

procedure, public :: finalize

  • private subroutine finalize(this)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout), target :: this

procedure, public :: get_depth

  • private function get_depth(this) result(depth)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(in) :: this

    Return Value integer

procedure, public :: get_num_meters

  • private function get_num_meters(this) result(num_meters)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(in) :: this

    Return Value integer

procedure, public :: get_root_node

  • private function get_root_node(this) result(root_node)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(in), target :: this

    Return Value class(AbstractMeterNode), pointer

procedure, public :: get_status

  • private function get_status(this) result(status)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(in) :: this

    Return Value integer

procedure, public :: make_meter

  • private function make_meter(this) result(meter)

    Arguments

    Type IntentOptional Attributes Name
    class(DistributedProfiler), intent(in) :: this

    Return Value class(AbstractMeter), allocatable

procedure, public :: reduce

  • private subroutine reduce(this)

    Arguments

    Type IntentOptional Attributes Name
    class(DistributedProfiler), intent(inout), target :: this

procedure, public :: reset

  • private recursive subroutine reset(this)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout), target :: this

procedure, public :: set_comm_world

  • private subroutine set_comm_world(this, comm_world)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout) :: this
    integer, intent(in), optional :: comm_world

procedure, public :: set_node

  • private subroutine set_node(this, node)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout) :: this
    class(MeterNode), intent(in) :: node

generic, public :: start => start_name

  • private subroutine start_name(this, name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout), target :: this
    character(len=*), intent(in) :: name
    integer, intent(out), optional :: rc

generic, public :: start => start_node

  • private subroutine start_node(this, node)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout) :: this
    class(AbstractMeterNode), intent(inout), target :: node

generic, public :: start => start_self

  • private subroutine start_self(this, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout), target :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

procedure, public :: start_name

  • private subroutine start_name(this, name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout), target :: this
    character(len=*), intent(in) :: name
    integer, intent(out), optional :: rc

procedure, public :: start_node

  • private subroutine start_node(this, node)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout) :: this
    class(AbstractMeterNode), intent(inout), target :: node

procedure, public :: start_self

  • private subroutine start_self(this, unusable, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout), target :: this
    class(KeywordEnforcer), intent(in), optional :: unusable
    integer, intent(out), optional :: rc

generic, public :: stop => stop_name

  • private subroutine stop_name(this, name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout) :: this
    character(len=*), intent(in) :: name
    integer, intent(out), optional :: rc

generic, public :: stop => stop_node

  • private subroutine stop_node(this, node)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout) :: this
    class(AbstractMeterNode), intent(inout), target :: node

generic, public :: stop => stop_self

  • private subroutine stop_self(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout) :: this
    integer, intent(out), optional :: rc

procedure, public :: stop_name

  • private subroutine stop_name(this, name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout) :: this
    character(len=*), intent(in) :: name
    integer, intent(out), optional :: rc

procedure, public :: stop_node

  • private subroutine stop_node(this, node)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout) :: this
    class(AbstractMeterNode), intent(inout), target :: node

procedure, public :: stop_self

  • private subroutine stop_self(this, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(BaseProfiler), intent(inout) :: this
    integer, intent(out), optional :: rc

generic, public :: zeit_ci => start_name

  • private subroutine start_name(this, name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout), target :: this
    character(len=*), intent(in) :: name
    integer, intent(out), optional :: rc

generic, public :: zeit_co => stop_name

  • private subroutine stop_name(this, name, rc)

    Arguments

    Type IntentOptional Attributes Name
    class(StubProfiler), intent(inout) :: this
    character(len=*), intent(in) :: name
    integer, intent(out), optional :: rc

Source Code

   type, extends(BaseProfiler) :: DistributedProfiler
      private
      class(AbstractGauge), allocatable :: gauge
      integer :: comm = -1
   contains
      procedure :: make_meter
      procedure :: reduce
      procedure :: copy
   end type DistributedProfiler