Skip to content
Snippets Groups Projects
Commit 6fcda6f7 authored by Matthieu Schaller's avatar Matthieu Schaller
Browse files

Merge branch 'vrpascalupdates' into 'master'

Updates to the Velociraptor interface for Pascal's runs

See merge request !717
parents aeced561 ee1578a9
No related branches found
No related tags found
1 merge request!717Updates to the Velociraptor interface for Pascal's runs
......@@ -957,7 +957,7 @@ if test "x$with_velociraptor" != "xno"; then
AC_PROG_FC
AC_FC_LIBRARY_LDFLAGS
if test "x$with_velociraptor" != "xyes" -a "x$with_velociraptor" != "x"; then
VELOCIRAPTOR_LIBS="-L$with_velociraptor -lvelociraptor -lstdc++ -lhdf5_cpp"
VELOCIRAPTOR_LIBS="-L$with_velociraptor -lvelociraptor -lmpi -lstdc++ -lhdf5_cpp"
CFLAGS="$CFLAGS -fopenmp"
else
VELOCIRAPTOR_LIBS=""
......
......@@ -462,11 +462,6 @@ int main(int argc, char *argv[]) {
if (with_limiter) error("Can't run with time-step limiter over MPI (yet)");
#endif
#if defined(WITH_MPI) && defined(HAVE_VELOCIRAPTOR)
if (with_structure_finding && nr_nodes > 1)
error("VEOCIraptor not yet enabled over MPI.");
#endif
/* Temporary early aborts for modes not supported with hand-vec. */
#if defined(WITH_VECTORIZATION) && !defined(CHEMISTRY_NONE)
error(
......
......@@ -44,7 +44,7 @@ int InitVelociraptor(char *config_name, char *output_name,
return 0;
}
int InvokeVelociraptor(const size_t num_gravity_parts,
const size_t num_hydro_parts,
const size_t num_hydro_parts, const int snapnum,
struct swift_vel_part *swift_parts,
const int *cell_node_ids, char *output_name) {
......
......@@ -113,7 +113,7 @@ int InitVelociraptor(char *config_name, char *output_name,
struct cosmoinfo cosmo_info, struct unitinfo unit_info,
struct siminfo sim_info);
int InvokeVelociraptor(const size_t num_gravity_parts,
const size_t num_hydro_parts,
const size_t num_hydro_parts, const int snapnum,
struct swift_vel_part *swift_parts,
const int *cell_node_ids, char *output_name);
......@@ -264,6 +264,7 @@ void velociraptor_invoke(struct engine *e) {
const int nr_cells = s->nr_cells;
int *cell_node_ids = NULL;
static int stf_output_count = 0;
int active_stf_output_count;
/* Allow thread to run on any core for the duration of the call to
* VELOCIraptor so that
......@@ -293,13 +294,15 @@ void velociraptor_invoke(struct engine *e) {
/* Append base name with either the step number or time depending on what
* format is specified in the parameter file. */
char outputFileName[PARSER_MAX_LINE_SIZE + 128];
if (e->stf_output_freq_format == io_stf_steps) {
snprintf(outputFileName, PARSER_MAX_LINE_SIZE + 128, "%s_%04i.VELOCIraptor",
e->stfBaseName, e->step);
} else if (e->stf_output_freq_format == io_stf_time) {
snprintf(outputFileName, PARSER_MAX_LINE_SIZE + 128, "%s_%04i.VELOCIraptor",
e->stfBaseName, stf_output_count);
}
if (e->stf_output_freq_format == io_stf_steps)
active_stf_output_count = e->step;
else if (e->stf_output_freq_format == io_stf_time)
active_stf_output_count = stf_output_count;
else
active_stf_output_count = 0;
snprintf(outputFileName, PARSER_MAX_LINE_SIZE + 128, "%s_%04i.VELOCIraptor",
e->stfBaseName, active_stf_output_count);
/* Allocate and populate an array of swift_vel_parts to be passed to
* VELOCIraptor. */
......@@ -347,8 +350,8 @@ void velociraptor_invoke(struct engine *e) {
}
/* Call VELOCIraptor. */
if (!InvokeVelociraptor(nr_gparts, nr_hydro_parts, swift_parts, cell_node_ids,
outputFileName))
if (!InvokeVelociraptor(nr_gparts, nr_hydro_parts, active_stf_output_count,
swift_parts, cell_node_ids, outputFileName))
error("Exiting. Call to VELOCIraptor failed on rank: %d.", e->nodeID);
/* Reset the pthread affinity mask after VELOCIraptor returns. */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment