Octopus
profiling_oct_m Module Reference

Data Types

type  profile_pointer_t
 
type  profile_t
 
type  profile_vars_t
 
interface  profiling_count_operations
 
interface  profiling_count_transfers
 

Functions/Subroutines

subroutine, public profiling_init (namespace)
 Create profiling subdirectory. More...
 
subroutine, public profiling_end (namespace)
 
subroutine profile_init (this, label)
 Initialize a profile object and add it to the list. More...
 
logical function, public profile_is_initialized (this)
 
subroutine, public profiling_in (this, label, exclude)
 Increment in counter and save entry time. More...
 
subroutine, public profiling_out (this)
 Increment out counter and sum up difference between entry and exit time. More...
 
subroutine iprofiling_count_operations (ops)
 
subroutine rprofiling_count_operations (ops)
 
subroutine dprofiling_count_operations (ops)
 
subroutine profiling_count_tran_int_l (trf, type)
 
subroutine profiling_count_tran_int_8_l (trf, type)
 
subroutine profiling_count_tran_real_4_l (trf, type)
 
subroutine profiling_count_tran_real_8_l (trf, type)
 
subroutine profiling_count_tran_complex_4_l (trf, type)
 
subroutine profiling_count_tran_complex_8_l (trf, type)
 
subroutine profiling_count_tran_type_l (trf, type)
 
subroutine profiling_count_tran_int (trf, type)
 
subroutine profiling_count_tran_int_8 (trf, type)
 
subroutine profiling_count_tran_real_4 (trf, type)
 
subroutine profiling_count_tran_real_8 (trf, type)
 
subroutine profiling_count_tran_complex_4 (trf, type)
 
subroutine profiling_count_tran_complex_8 (trf, type)
 
subroutine profiling_count_tran_type (trf, type)
 
real(8) function profile_total_time (this)
 
real(8) function profile_self_time (this)
 
real(8) function profile_total_time_per_call (this)
 
real(8) function profile_min_time (this)
 
real(8) function profile_self_time_per_call (this)
 
real(r8) function profile_total_throughput (this)
 
real(8) function profile_total_bandwidth (this)
 
real(8) function profile_self_throughput (this)
 
real(8) function profile_self_bandwidth (this)
 
integer function profile_num_calls (this)
 
character(label_length) function profile_label (this)
 
subroutine, public profiling_output (namespace)
 Write profiling results of each node to profiling.NNN/profiling.nnn The format of each line is tag-label pass_in pass_out time time/pass_in. More...
 
subroutine profiling_make_position_str (var, file, line, str)
 
subroutine profiling_memory_log (type, var, file, line, size)
 
subroutine, public profiling_memory_allocate (var, file, line, size_)
 
subroutine, public profiling_memory_deallocate (var, file, line, size)
 

Variables

integer, parameter label_length = 25
 Max. number of characters of tag label. More...
 
integer, parameter max_profiles = 200
 Max. number of tags. More...
 
integer, parameter, public profiling_time = 1
 
integer, parameter, public profiling_memory = 2
 
integer, parameter, public profiling_memory_full = 4
 
integer, parameter, public profiling_likwid = 8
 
integer, parameter, public profiling_io = 16
 
integer, parameter max_memory_vars = 25
 
type(profile_vars_t), target, public prof_vars
 
type(profile_t), save, public c_profiling_complete_run
 For the moment we will have the profiler objects here, but they should be moved to their respective modules. i.e. DO NOT PUT NEW PROFILES HERE. More...
 

Function/Subroutine Documentation

◆ profiling_init()

subroutine, public profiling_oct_m::profiling_init ( type(namespace_t), intent(in)  namespace)

Create profiling subdirectory.

Definition at line 252 of file profiling.F90.

◆ profiling_end()

subroutine, public profiling_oct_m::profiling_end ( type(namespace_t), intent(in)  namespace)

Definition at line 408 of file profiling.F90.

◆ profile_init()

subroutine profiling_oct_m::profile_init ( type(profile_t), intent(out), target  this,
character(*), intent(in)  label 
)
private

Initialize a profile object and add it to the list.

Definition at line 485 of file profiling.F90.

◆ profile_is_initialized()

logical function, public profiling_oct_m::profile_is_initialized ( type(profile_t), intent(in)  this)

Definition at line 543 of file profiling.F90.

◆ profiling_in()

subroutine, public profiling_oct_m::profiling_in ( type(profile_t), intent(inout), target  this,
character(*), intent(in)  label,
logical, intent(in), optional  exclude 
)

Increment in counter and save entry time.

Parameters
[in]exclude.true. The time spent here is also excluded from the parent total_time. Only use it for functions that otherwise would spoil statistics.

Definition at line 556 of file profiling.F90.

◆ profiling_out()

subroutine, public profiling_oct_m::profiling_out ( type(profile_t), intent(inout)  this)

Increment out counter and sum up difference between entry and exit time.

Definition at line 616 of file profiling.F90.

◆ iprofiling_count_operations()

subroutine profiling_oct_m::iprofiling_count_operations ( integer, intent(in)  ops)
private

Definition at line 683 of file profiling.F90.

◆ rprofiling_count_operations()

subroutine profiling_oct_m::rprofiling_count_operations ( real(4), intent(in)  ops)
private

Definition at line 695 of file profiling.F90.

◆ dprofiling_count_operations()

subroutine profiling_oct_m::dprofiling_count_operations ( real(r8), intent(in)  ops)
private

Definition at line 707 of file profiling.F90.

◆ profiling_count_tran_int_l()

subroutine profiling_oct_m::profiling_count_tran_int_l ( integer(i8), intent(in)  trf,
integer, intent(in)  type 
)
private

Definition at line 720 of file profiling.F90.

◆ profiling_count_tran_int_8_l()

subroutine profiling_oct_m::profiling_count_tran_int_8_l ( integer(i8), intent(in)  trf,
integer(i8), intent(in)  type 
)
private

Definition at line 733 of file profiling.F90.

◆ profiling_count_tran_real_4_l()

subroutine profiling_oct_m::profiling_count_tran_real_4_l ( integer(i8), intent(in)  trf,
real(4), intent(in)  type 
)
private

Definition at line 746 of file profiling.F90.

◆ profiling_count_tran_real_8_l()

subroutine profiling_oct_m::profiling_count_tran_real_8_l ( integer(i8), intent(in)  trf,
real(r8), intent(in)  type 
)
private

Definition at line 760 of file profiling.F90.

◆ profiling_count_tran_complex_4_l()

subroutine profiling_oct_m::profiling_count_tran_complex_4_l ( integer(i8), intent(in)  trf,
complex(4), intent(in)  type 
)
private

Definition at line 774 of file profiling.F90.

◆ profiling_count_tran_complex_8_l()

subroutine profiling_oct_m::profiling_count_tran_complex_8_l ( integer(i8), intent(in)  trf,
complex(r8), intent(in)  type 
)
private

Definition at line 788 of file profiling.F90.

◆ profiling_count_tran_type_l()

subroutine profiling_oct_m::profiling_count_tran_type_l ( integer(i8), intent(in)  trf,
type(type_t), intent(in)  type 
)
private

Definition at line 802 of file profiling.F90.

◆ profiling_count_tran_int()

subroutine profiling_oct_m::profiling_count_tran_int ( integer, intent(in)  trf,
integer, intent(in)  type 
)
private

Definition at line 816 of file profiling.F90.

◆ profiling_count_tran_int_8()

subroutine profiling_oct_m::profiling_count_tran_int_8 ( integer, intent(in)  trf,
integer(i8), intent(in)  type 
)
private

Definition at line 829 of file profiling.F90.

◆ profiling_count_tran_real_4()

subroutine profiling_oct_m::profiling_count_tran_real_4 ( integer, intent(in)  trf,
real(4), intent(in)  type 
)
private

Definition at line 842 of file profiling.F90.

◆ profiling_count_tran_real_8()

subroutine profiling_oct_m::profiling_count_tran_real_8 ( integer, intent(in)  trf,
real(r8), intent(in)  type 
)
private

Definition at line 856 of file profiling.F90.

◆ profiling_count_tran_complex_4()

subroutine profiling_oct_m::profiling_count_tran_complex_4 ( integer, intent(in)  trf,
complex(4), intent(in)  type 
)
private

Definition at line 870 of file profiling.F90.

◆ profiling_count_tran_complex_8()

subroutine profiling_oct_m::profiling_count_tran_complex_8 ( integer, intent(in)  trf,
complex(r8), intent(in)  type 
)
private

Definition at line 884 of file profiling.F90.

◆ profiling_count_tran_type()

subroutine profiling_oct_m::profiling_count_tran_type ( integer, intent(in)  trf,
type(type_t), intent(in)  type 
)
private

Definition at line 898 of file profiling.F90.

◆ profile_total_time()

real(8) function profiling_oct_m::profile_total_time ( type(profile_t), intent(in)  this)
private

Definition at line 910 of file profiling.F90.

◆ profile_self_time()

real(8) function profiling_oct_m::profile_self_time ( type(profile_t), intent(in)  this)
private

Definition at line 921 of file profiling.F90.

◆ profile_total_time_per_call()

real(8) function profiling_oct_m::profile_total_time_per_call ( type(profile_t), intent(in)  this)
private

Definition at line 932 of file profiling.F90.

◆ profile_min_time()

real(8) function profiling_oct_m::profile_min_time ( type(profile_t), intent(in)  this)
private

Definition at line 943 of file profiling.F90.

◆ profile_self_time_per_call()

real(8) function profiling_oct_m::profile_self_time_per_call ( type(profile_t), intent(in)  this)
private

Definition at line 954 of file profiling.F90.

◆ profile_total_throughput()

real(r8) function profiling_oct_m::profile_total_throughput ( type(profile_t), intent(in)  this)
private

Definition at line 965 of file profiling.F90.

◆ profile_total_bandwidth()

real(8) function profiling_oct_m::profile_total_bandwidth ( type(profile_t), intent(in)  this)
private

Definition at line 982 of file profiling.F90.

◆ profile_self_throughput()

real(8) function profiling_oct_m::profile_self_throughput ( type(profile_t), intent(in)  this)
private

Definition at line 998 of file profiling.F90.

◆ profile_self_bandwidth()

real(8) function profiling_oct_m::profile_self_bandwidth ( type(profile_t), intent(in)  this)
private

Definition at line 1014 of file profiling.F90.

◆ profile_num_calls()

integer function profiling_oct_m::profile_num_calls ( type(profile_t), intent(in)  this)
private

Definition at line 1030 of file profiling.F90.

◆ profile_label()

character(label_length) function profiling_oct_m::profile_label ( type(profile_t), intent(in)  this)
private

Definition at line 1041 of file profiling.F90.

◆ profiling_output()

subroutine, public profiling_oct_m::profiling_output ( type(namespace_t), intent(in)  namespace)

Write profiling results of each node to profiling.NNN/profiling.nnn The format of each line is tag-label pass_in pass_out time time/pass_in.

The last column gives the average time consumed between in and out (only, if pass_in and pass_out are equal).

Definition at line 1058 of file profiling.F90.

◆ profiling_make_position_str()

subroutine profiling_oct_m::profiling_make_position_str ( character(len=*), intent(in)  var,
character(len=*), intent(in)  file,
integer, intent(in)  line,
character(len=*), intent(out)  str 
)
private

Definition at line 1242 of file profiling.F90.

◆ profiling_memory_log()

subroutine profiling_oct_m::profiling_memory_log ( character(len=*), intent(in)  type,
character(len=*), intent(in)  var,
character(len=*), intent(in)  file,
integer, intent(in)  line,
integer(i8), intent(in)  size 
)
private

Definition at line 1277 of file profiling.F90.

◆ profiling_memory_allocate()

subroutine, public profiling_oct_m::profiling_memory_allocate ( character(len=*), intent(in)  var,
character(len=*), intent(in)  file,
integer, intent(in)  line,
integer(i8), intent(in)  size_ 
)

Definition at line 1301 of file profiling.F90.

◆ profiling_memory_deallocate()

subroutine, public profiling_oct_m::profiling_memory_deallocate ( character(len=*), intent(in)  var,
character(len=*), intent(in)  file,
integer, intent(in)  line,
integer(i8), intent(in)  size 
)

Definition at line 1372 of file profiling.F90.

Variable Documentation

◆ label_length

integer, parameter profiling_oct_m::label_length = 25
private

Max. number of characters of tag label.

Definition at line 141 of file profiling.F90.

◆ max_profiles

integer, parameter profiling_oct_m::max_profiles = 200
private

Max. number of tags.

Definition at line 141 of file profiling.F90.

◆ profiling_time

integer, parameter, public profiling_oct_m::profiling_time = 1

Definition at line 200 of file profiling.F90.

◆ profiling_memory

integer, parameter, public profiling_oct_m::profiling_memory = 2

Definition at line 200 of file profiling.F90.

◆ profiling_memory_full

integer, parameter, public profiling_oct_m::profiling_memory_full = 4

Definition at line 200 of file profiling.F90.

◆ profiling_likwid

integer, parameter, public profiling_oct_m::profiling_likwid = 8

Definition at line 200 of file profiling.F90.

◆ profiling_io

integer, parameter, public profiling_oct_m::profiling_io = 16

Definition at line 200 of file profiling.F90.

◆ max_memory_vars

integer, parameter profiling_oct_m::max_memory_vars = 25
private

Definition at line 207 of file profiling.F90.

◆ prof_vars

type(profile_vars_t), target, public profiling_oct_m::prof_vars

Definition at line 240 of file profiling.F90.

◆ c_profiling_complete_run

type(profile_t), save, public profiling_oct_m::c_profiling_complete_run

For the moment we will have the profiler objects here, but they should be moved to their respective modules. i.e. DO NOT PUT NEW PROFILES HERE.

Definition at line 246 of file profiling.F90.