![]() |
(git:f56c6e3)
|
Machine interface based on Fortran 2003 and POSIX. More...
Data Types | |
| interface | m_cpuid_static |
| Target architecture or instruction set extension according to compiler target flags. More... | |
| interface | m_omp_trace_issues |
| Trace OpenMP constructs if ennvironment variable CP2K_OMP_TRACE=1. More... | |
Functions/Subroutines | |
| subroutine, public | m_flush (lunit) |
| flushes units if the &GLOBAL flag is set accordingly | |
| real(kind=dp) function, public | m_walltime () |
| returns time from a real-time clock, protected against rolling early/easily | |
| subroutine, public | m_cpuinfo (model_name) |
| reads /proc/cpuinfo if it exists (i.e. Linux) to return relevant info | |
| pure integer function, public | m_cpuid () |
| Target architecture or instruction set extension according to CPU-check at runtime. | |
| pure character(len=default_string_length) function, public | m_cpuid_name (cpuid) |
| Determine name of target architecture for a given CPUID. | |
| pure integer function, public | m_cpuid_vlen (cpuid, typesize) |
| Determine vector-length for a given CPUID. | |
| real(kind=dp) function, public | m_energy () |
| returns the energy used since some time in the past. The precise meaning depends on the infrastructure is available. In the cray_pm_energy case, this is the energy used by the node in kJ. | |
| subroutine, public | m_timestamp (timestamp) |
| Returns a human readable timestamp. | |
| subroutine, public | m_abort () |
| Can be used to get a nice core. | |
| integer function, public | m_procrun (pid) |
| Returns if a process is running on the local machine 1 if yes and 0 if not. | |
| subroutine, public | m_memory (mem) |
| Returns the total amount of memory [bytes] in use, if known, zero otherwise. | |
| subroutine, public | m_memory_details (memtotal, memfree, buffers, cached, slab, sreclaimable, memlikelyfree) |
| get more detailed memory info, all units are bytes. the only 'useful' option is MemLikelyFree which is an estimate of remaining memory assumed to give info like /proc/meminfo while MeMLikelyFree is the amount of memory we're likely to be able to allocate, but not necessarily in one chunk zero means not available... | |
| subroutine, public | m_hostnm (hname) |
| ... | |
| subroutine, public | m_getcwd (curdir) |
| ... | |
| subroutine, public | m_chdir (dir, ierror) |
| ... | |
| subroutine, public | m_getpid (pid) |
| ... | |
| subroutine, public | m_mov (source, target) |
| ... | |
| subroutine, public | m_getlog (user) |
| ... | |
| subroutine, public | m_omp_get_stacksize (omp_stacksize) |
| Retrieve environment variable OMP_STACKSIZE. | |
Variables | |
| integer, parameter, public | default_output_unit = output_unit |
| integer, parameter, public | default_input_unit = input_unit |
| integer, parameter, public | timestamp_length = 23 |
| integer, parameter, public | machine_cpu_generic = CP_MACHINE_CPU_GENERIC |
| integer, parameter, public | machine_x86_sse4 = CP_MACHINE_X86_SSE4 |
| integer, parameter, public | machine_x86_avx = CP_MACHINE_X86_AVX |
| integer, parameter, public | machine_x86_avx2 = CP_MACHINE_X86_AVX2 |
| integer, parameter, public | machine_x86_avx512 = CP_MACHINE_X86_AVX512 |
| integer, parameter, public | machine_x86 = MACHINE_X86_AVX512 |
| integer, parameter, public | machine_arm_arch64 = CP_MACHINE_ARM_ARCH64 |
| integer, parameter, public | machine_arm_sve128 = CP_MACHINE_ARM_SVE128 |
| integer, parameter, public | machine_arm_sve256 = CP_MACHINE_ARM_SVE256 |
| integer, parameter, public | machine_arm_sve512 = CP_MACHINE_ARM_SVE512 |
| integer, parameter, public | machine_arm = MACHINE_ARM_SVE512 |
| integer, parameter, public | machine_cpu_unknown = CP_MACHINE_UNKNOWN |
| logical, save, public | flush_should_flush = .TRUE. |
| integer(kind=int_8), save, public | m_memory_max = 0 |
Machine interface based on Fortran 2003 and POSIX.
| subroutine, public machine::m_flush | ( | integer, intent(in) | lunit | ) |
| real(kind=dp) function, public machine::m_walltime |
| subroutine, public machine::m_cpuinfo | ( | character(len=default_string_length), intent(out) | model_name | ) |
| pure integer function, public machine::m_cpuid |
Target architecture or instruction set extension according to CPU-check at runtime.
Definition at line 199 of file machine.F.
| pure character(len=default_string_length) function, public machine::m_cpuid_name | ( | integer, intent(in), optional | cpuid | ) |
Determine name of target architecture for a given CPUID.
| cpuid | integer value (MACHINE_*) |
Definition at line 244 of file machine.F.
| pure integer function, public machine::m_cpuid_vlen | ( | integer, intent(in), optional | cpuid, |
| integer, intent(in), optional | typesize | ||
| ) |
Determine vector-length for a given CPUID.
| cpuid | integer value (MACHINE_*) |
| typesize | number of bytes of scalar type |
Definition at line 288 of file machine.F.
| real(kind=dp) function, public machine::m_energy |
returns the energy used since some time in the past. The precise meaning depends on the infrastructure is available. In the cray_pm_energy case, this is the energy used by the node in kJ.
Definition at line 340 of file machine.F.
| subroutine, public machine::m_timestamp | ( | character(len=timestamp_length), intent(out) | timestamp | ) |
| subroutine, public machine::m_abort |
| integer function, public machine::m_procrun | ( | integer, intent(in) | pid | ) |
| subroutine, public machine::m_memory | ( | integer(kind=int_8), intent(out), optional | mem | ) |
| subroutine, public machine::m_memory_details | ( | integer(kind=int_8), optional | memtotal, |
| integer(kind=int_8), optional | memfree, | ||
| integer(kind=int_8), optional | buffers, | ||
| integer(kind=int_8), optional | cached, | ||
| integer(kind=int_8), optional | slab, | ||
| integer(kind=int_8), optional | sreclaimable, | ||
| integer(kind=int_8), optional | memlikelyfree | ||
| ) |
get more detailed memory info, all units are bytes. the only 'useful' option is MemLikelyFree which is an estimate of remaining memory assumed to give info like /proc/meminfo while MeMLikelyFree is the amount of memory we're likely to be able to allocate, but not necessarily in one chunk zero means not available...
| MemTotal | ... |
| MemFree | ... |
| Buffers | ... |
| Cached | ... |
| Slab | ... |
| SReclaimable | ... |
| MemLikelyFree | ... |
Definition at line 525 of file machine.F.
| subroutine, public machine::m_hostnm | ( | character(len=*), intent(out) | hname | ) |
| subroutine, public machine::m_getcwd | ( | character(len=*), intent(out) | curdir | ) |
| subroutine, public machine::m_chdir | ( | character(len=*), intent(in) | dir, |
| integer, intent(out) | ierror | ||
| ) |
| subroutine, public machine::m_getpid | ( | integer, intent(out) | pid | ) |
| subroutine, public machine::m_mov | ( | character(len=*), intent(in) | source, |
| character(len=*), intent(in) | target | ||
| ) |
| subroutine, public machine::m_getlog | ( | character(len=*), intent(out) | user | ) |
| subroutine, public machine::m_omp_get_stacksize | ( | character(len=*), intent(out) | omp_stacksize | ) |
| integer, parameter, public machine::default_output_unit = output_unit |
| integer, parameter, public machine::default_input_unit = input_unit |
| integer, parameter, public machine::machine_cpu_generic = CP_MACHINE_CPU_GENERIC |
| integer, parameter, public machine::machine_x86_sse4 = CP_MACHINE_X86_SSE4 |
| integer, parameter, public machine::machine_x86_avx = CP_MACHINE_X86_AVX |
| integer, parameter, public machine::machine_x86_avx2 = CP_MACHINE_X86_AVX2 |
| integer, parameter, public machine::machine_x86_avx512 = CP_MACHINE_X86_AVX512 |
| integer, parameter, public machine::machine_x86 = MACHINE_X86_AVX512 |
| integer, parameter, public machine::machine_arm_arch64 = CP_MACHINE_ARM_ARCH64 |
| integer, parameter, public machine::machine_arm_sve128 = CP_MACHINE_ARM_SVE128 |
| integer, parameter, public machine::machine_arm_sve256 = CP_MACHINE_ARM_SVE256 |
| integer, parameter, public machine::machine_arm_sve512 = CP_MACHINE_ARM_SVE512 |
| integer, parameter, public machine::machine_arm = MACHINE_ARM_SVE512 |
| integer, parameter, public machine::machine_cpu_unknown = CP_MACHINE_UNKNOWN |
| logical, save, public machine::flush_should_flush = .TRUE. |