|
@@ -17,6 +17,7 @@
|
|
|
|
|
|
#include <ipc_debug.h>
|
|
|
|
|
|
+bool debug_ipc_disabled = true;
|
|
|
bool debug_ipc_is_root = false;
|
|
|
FILE *debug_ipc_file = nullptr;
|
|
|
|
|
@@ -33,6 +34,10 @@ constexpr size_t INITIAL_BUFFER_SIZE = 5 * 1024 * 1024; // 5 MiB
|
|
|
void print_backtrace();
|
|
|
|
|
|
void debug_ipc_init() {
|
|
|
+ const char *root_env = std::getenv("IPC_DEBUG_ROOT");
|
|
|
+ const char *file_env = std::getenv("IPC_DEBUG_FILE");
|
|
|
+ debug_ipc_disabled = file_env == nullptr;
|
|
|
+
|
|
|
int mpi_initialized;
|
|
|
MPI_Initialized(&mpi_initialized);
|
|
|
if (mpi_initialized) {
|
|
@@ -41,8 +46,6 @@ void debug_ipc_init() {
|
|
|
}
|
|
|
|
|
|
if (rank == 0) {
|
|
|
- const char *root_env = std::getenv("IPC_DEBUG_ROOT");
|
|
|
- const char *file_env = std::getenv("IPC_DEBUG_FILE");
|
|
|
|
|
|
if (file_env == nullptr) {
|
|
|
return;
|
|
@@ -82,7 +85,7 @@ void endless_loop() {
|
|
|
|
|
|
template<typename T>
|
|
|
void debug_ipc_assert_equal(T value) {
|
|
|
- if (debug_ipc_file == nullptr) {
|
|
|
+ if (debug_ipc_file == nullptr || debug_ipc_disabled) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -122,7 +125,7 @@ void debug_ipc_assert_equal(T value) {
|
|
|
|
|
|
template<typename T>
|
|
|
void debug_ipc_assert_equal_vector(std::vector<T> value) {
|
|
|
- if (debug_ipc_file == nullptr) {
|
|
|
+ if (debug_ipc_file == nullptr || debug_ipc_disabled) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -181,7 +184,7 @@ void debug_ipc_assert_equal_int64(int64_t value) {
|
|
|
|
|
|
void debug_ipc_assert_equal_array(void *value, size_t size) {
|
|
|
static_assert(sizeof(char) == 1);
|
|
|
- if (debug_ipc_file == nullptr) {
|
|
|
+ if (debug_ipc_file == nullptr || debug_ipc_disabled) {
|
|
|
return;
|
|
|
}
|
|
|
debug_ipc_assert_equal(size); // Make sure arrays are the same size
|
|
@@ -255,6 +258,10 @@ void debug_ipc_mpi_set_data_distribution(int start_index) {
|
|
|
|
|
|
|
|
|
void debug_ipc_assert_equal_mpi_double_array(double *array, size_t array_length) {
|
|
|
+ if (debug_ipc_disabled) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
std::vector<int> recv_counts(cluster_size);
|
|
|
std::vector<int> displacements(cluster_size);
|
|
|
int local_array_length = static_cast<int>(array_length);
|