-/* Copyright (c) 2007, 2009, 2010. The SimGrid Team.
+/* Copyright (c) 2007, 2009-2013. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
#ifndef SMPI_PRIVATE_H
#define SMPI_PRIVATE_H
+#include "internal_config.h"
#include "xbt.h"
#include "xbt/xbt_os_time.h"
#include "simgrid/simix.h"
#endif
} s_smpi_mpi_request_t;
-void smpi_process_init(int *argc, char ***argv);
void smpi_process_destroy(void);
void smpi_process_finalize(void);
int smpi_process_finalized(void);
xbt_os_timer_t smpi_process_timer(void);
void smpi_process_simulated_start(void);
double smpi_process_simulated_elapsed(void);
+void smpi_process_set_sampling(int s);
+int smpi_process_get_sampling(void);
void print_request(const char *message, MPI_Request request);
int dst, int tag, MPI_Comm comm);
MPI_Request smpi_mpi_isend(void *buf, int count, MPI_Datatype datatype,
int dst, int tag, MPI_Comm comm);
+MPI_Request smpi_issend_init(void *buf, int count, MPI_Datatype datatype,
+ int dst, int tag, MPI_Comm comm);
MPI_Request smpi_mpi_issend(void *buf, int count, MPI_Datatype datatype,
int dst, int tag, MPI_Comm comm);
MPI_Request smpi_irecv_init(void *buf, int count, MPI_Datatype datatype,
MPI_Comm comm);
// utilities
+extern double smpi_cpu_threshold;
+extern double smpi_running_power;
void smpi_bench_destroy(void);
void smpi_bench_begin(void);
void smpi_bench_end(void);
-void smpi_execute_flops(double flops);
// f77 wrappers
void mpi_init_(int*);
/* from smpi_instr.c */
void TRACE_internal_smpi_set_category (const char *category);
const char *TRACE_internal_smpi_get_category (void);
-void TRACE_smpi_collective_in(int rank, int root, const char *operation);
+void TRACE_smpi_collective_in(int rank, int root, const char *operation, instr_extra_data extra);
void TRACE_smpi_collective_out(int rank, int root, const char *operation);
void TRACE_smpi_computing_init(int rank);
void TRACE_smpi_computing_out(int rank);
-void TRACE_smpi_computing_in(int rank);
+void TRACE_smpi_computing_in(int rank, instr_extra_data extra);
+void TRACE_smpi_alloc(void);
+void TRACE_smpi_release(void);
+void TRACE_smpi_ptp_in(int rank, int src, int dst, const char *operation, instr_extra_data extra);
+void TRACE_smpi_ptp_out(int rank, int src, int dst, const char *operation);
+void TRACE_smpi_send(int rank, int src, int dst, int size);
+void TRACE_smpi_recv(int rank, int src, int dst);
+void TRACE_smpi_init(int rank);
+void TRACE_smpi_finalize(int rank);
+
+
+const char* encode_datatype(MPI_Datatype datatype);
+
#endif