SimGrid
3.13
Versatile Simulation of Distributed Systems
|
#include <cstring>
#include <unordered_map>
#include <utility>
#include "src/internal_config.h"
#include "private.h"
#include "xbt/dict.h"
#include "xbt/sysdep.h"
#include "xbt/ex.h"
#include "surf/surf.h"
#include "simgrid/sg_config.h"
#include "simgrid/modelchecker.h"
#include "src/mc/mc_replay.h"
#include <sys/mman.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <errno.h>
#include <fcntl.h>
#include <math.h>
#include <unistd.h>
#include <string.h>
#include <stdio.h>
Classes | |
class | std::hash< smpi_source_location > |
struct | local_data_t |
Namespaces | |
std | |
Macros | |
#define | MAP_ANONYMOUS MAP_ANON |
#define | PTR_STRLEN (2 + 2 * sizeof(void*) + 1) |
#define | TOPAGE(addr) (void *)(((unsigned long)(addr) / xbt_pagesize) * xbt_pagesize) |
Functions | |
XBT_LOG_NEW_DEFAULT_SUBCATEGORY (smpi_bench, smpi,"Logging specific to SMPI (benchmarking)") | |
static size_t | shm_size (int fd) |
static void * | shm_map (int fd, size_t size, shared_data_key_type *data) |
void | smpi_bench_destroy (void) |
void | smpi_execute_flops_ (double *flops) |
void | smpi_execute_ (double *duration) |
void | smpi_execute_flops (double flops) |
void | smpi_execute (double duration) |
void | smpi_switch_data_segment (int dest) |
Map a given SMPI privatization segment (make a SMPI process active) More... | |
void | smpi_bench_begin (void) |
void | smpi_bench_end (void) |
static unsigned int | private_sleep (double secs) |
unsigned int | smpi_sleep (unsigned int secs) |
int | smpi_usleep (useconds_t usecs) |
int | smpi_gettimeofday (struct timeval *tv, void *tz) |
unsigned long long | smpi_rastro_resolution (void) |
unsigned long long | smpi_rastro_timestamp (void) |
static char * | sample_location (int global, const char *file, int line) |
static int | sample_enough_benchs (local_data_t *data) |
void | smpi_sample_1 (int global, const char *file, int line, int iters, double threshold) |
int | smpi_sample_2 (int global, const char *file, int line) |
void | smpi_sample_3 (int global, const char *file, int line) |
void * | smpi_shared_malloc (size_t size, const char *file, int line) |
void | smpi_shared_free (void *ptr) |
int | smpi_shared_known_call (const char *func, const char *input) |
void * | smpi_shared_get_call (const char *func, const char *input) |
void * | smpi_shared_set_call (const char *func, const char *input, void *data) |
void | smpi_really_switch_data_segment (int dest) |
Map a given SMPI privatization segment (make a SMPI process active) even if SMPI thinks it is already active. More... | |
int | smpi_is_privatisation_file (char *file) |
void | smpi_initialize_global_memory_segments () |
void | smpi_destroy_global_memory_segments () |
Variables | |
xbt_dict_t | samples = NULL |
xbt_dict_t | calls = NULL |
double | smpi_cpu_threshold |
double | smpi_running_power |
int | smpi_loaded_page = -1 |
char * | smpi_start_data_exe = NULL |
int | smpi_size_data_exe = 0 |
int | smpi_privatize_global_variables |
double | smpi_total_benched_time = 0 |
smpi_privatisation_region_t | smpi_privatisation_regions |
double | sg_surf_precision |
#define MAP_ANONYMOUS MAP_ANON |
#define PTR_STRLEN (2 + 2 * sizeof(void*) + 1) |
#define TOPAGE | ( | addr | ) | (void *)(((unsigned long)(addr) / xbt_pagesize) * xbt_pagesize) |
XBT_LOG_NEW_DEFAULT_SUBCATEGORY | ( | smpi_bench | , |
smpi | , | ||
"Logging specific to SMPI (benchmarking)" | |||
) |
|
static |
|
static |
void smpi_execute_flops_ | ( | double * | flops | ) |
void smpi_execute_ | ( | double * | duration | ) |
void smpi_execute_flops | ( | double | flops | ) |
void smpi_execute | ( | double | duration | ) |
void smpi_switch_data_segment | ( | int | dest | ) |
Map a given SMPI privatization segment (make a SMPI process active)
|
static |
unsigned int smpi_sleep | ( | unsigned int | secs | ) |
int smpi_usleep | ( | useconds_t | usecs | ) |
int smpi_gettimeofday | ( | struct timeval * | tv, |
void * | tz | ||
) |
unsigned long long smpi_rastro_resolution | ( | void | ) |
unsigned long long smpi_rastro_timestamp | ( | void | ) |
|
static |
|
static |
void smpi_sample_1 | ( | int | global, |
const char * | file, | ||
int | line, | ||
int | iters, | ||
double | threshold | ||
) |
int smpi_sample_2 | ( | int | global, |
const char * | file, | ||
int | line | ||
) |
void smpi_sample_3 | ( | int | global, |
const char * | file, | ||
int | line | ||
) |
void* smpi_shared_malloc | ( | size_t | size, |
const char * | file, | ||
int | line | ||
) |
int smpi_shared_known_call | ( | const char * | func, |
const char * | input | ||
) |
void* smpi_shared_get_call | ( | const char * | func, |
const char * | input | ||
) |
void smpi_really_switch_data_segment | ( | int | dest | ) |
Map a given SMPI privatization segment (make a SMPI process active) even if SMPI thinks it is already active.
When doing a state restoration, the state of the restored variables might not be consistent with the state of the virtual memory. In this case, we to change the data segment.
int smpi_is_privatisation_file | ( | char * | file | ) |
xbt_dict_t samples = NULL |
xbt_dict_t calls = NULL |
double smpi_cpu_threshold |
double smpi_running_power |
int smpi_loaded_page = -1 |
char* smpi_start_data_exe = NULL |
int smpi_size_data_exe = 0 |
int smpi_privatize_global_variables |
double smpi_total_benched_time = 0 |
smpi_privatisation_region_t smpi_privatisation_regions |
double sg_surf_precision |