- printf("%s%*.*s %s\n", str.c_str(), 30 - len, 30 - len, "", desc);
- if (longdesc != nullptr && detailed){
- printf ("%s\n\n", longdesc);
- }
-}
-
-void TRACE_help (int detailed)
-{
- printf("Description of the tracing options accepted by this simulator:\n\n");
- print_line (OPT_TRACING, "Enable the tracing system",
- " It activates the tracing system and register the simulation platform\n"
- " in the trace file. You have to enable this option to others take effect.", detailed);
- print_line (OPT_TRACING_CATEGORIZED, "Trace categorized resource utilization",
- " It activates the categorized resource utilization tracing. It should\n"
- " be enabled if tracing categories are used by this simulator.", detailed);
- print_line (OPT_TRACING_UNCATEGORIZED, "Trace uncategorized resource utilization",
- " It activates the uncategorized resource utilization tracing. Use it if\n"
- " this simulator do not use tracing categories and resource use have to be\n"
- " traced.", detailed);
- print_line (OPT_TRACING_FILENAME, "Filename to register traces",
- " A file with this name will be created to register the simulation. The file\n"
- " is in the Paje format and can be analyzed using Viva, Paje, and PajeNG visualization\n"
- " tools. More information can be found in these webpages:\n"
- " http://github.com/schnorr/viva/\n"
- " http://github.com/schnorr/pajeng/\n"
- " http://paje.sourceforge.net/", detailed);
- print_line (OPT_TRACING_SMPI, "Trace the MPI Interface (SMPI)",
- " This option only has effect if this simulator is SMPI-based. Traces the MPI\n"
- " interface and generates a trace that can be analyzed using Gantt-like\n"
- " visualizations. Every MPI function (implemented by SMPI) is transformed in a\n"
- " state, and point-to-point communications can be analyzed with arrows.", detailed);
- print_line (OPT_TRACING_SMPI_GROUP, "Group MPI processes by host (SMPI)",
- " This option only has effect if this simulator is SMPI-based. The processes\n"
- " are grouped by the hosts where they were executed.", detailed);
- print_line (OPT_TRACING_SMPI_COMPUTING, "Generates a \" Computing \" State",
- " This option aims at tracing computations in the application, outside SMPI\n"
- " to allow further study of simulated or real computation time", detailed);
- print_line (OPT_TRACING_SMPI_SLEEPING, "Generates a \" Sleeping \" State",
- " This option aims at tracing sleeps in the application, outside SMPI\n"
- " to allow further study of simulated or real sleep time", detailed);
- print_line (OPT_TRACING_SMPI_INTERNALS, "Generates tracing events corresponding",
- " to point-to-point messages sent by collective communications", detailed);
- print_line (OPT_TRACING_MSG_PROCESS, "Trace processes behavior (MSG)",
- " This option only has effect if this simulator is MSG-based. It traces the\n"
- " behavior of all categorized MSG processes, grouping them by hosts. This option\n"
- " can be used to track process location if this simulator has process migration.", detailed);
- print_line (OPT_TRACING_BUFFER, "Buffer events to put them in temporal order",
- " This option put some events in a time-ordered buffer using the insertion\n"
- " sort algorithm. The process of acquiring and releasing locks to access this\n"
- " buffer and the cost of the sorting algorithm make this process slow. The\n"
- " simulator performance can be severely impacted if this option is activated,\n"
- " but you are sure to get a trace file with events sorted.", detailed);
- print_line (OPT_TRACING_ONELINK_ONLY, "Consider only one link routes to trace platform",
- " This option changes the way SimGrid register its platform on the trace file.\n"
- " Normally, the tracing considers all routes (no matter their size) on the\n"
- " platform file to re-create the resource topology. If this option is activated,\n"
- " only the routes with one link are used to register the topology within an AS.\n"
- " Routes among AS continue to be traced as usual.", detailed);
- print_line (OPT_TRACING_DISABLE_DESTROY, "Disable platform containers destruction",
- " Disable the destruction of containers at the end of simulation. This can be\n"
- " used with simulators that have a different notion of time (different from\n"
- " the simulated time).", detailed);
- print_line (OPT_TRACING_BASIC, "Avoid extended events (impoverished trace file).",
- " Some visualization tools are not able to parse correctly the Paje file format.\n"
- " Use this option if you are using one of these tools to visualize the simulation\n"
- " trace. Keep in mind that the trace might be incomplete, without all the\n"
- " information that would be registered otherwise.", detailed);
- print_line (OPT_TRACING_DISPLAY_SIZES, "Only works for SMPI now. Add message size information",
- " Message size (in bytes) is added to links, and to states. For collectives,\n"
- " the displayed value is the more relevant to the collective (total sent by\n"
- " the process, usually)", detailed);
- print_line (OPT_TRACING_FORMAT, "Only works for SMPI now. Switch output format",
- " Default format is Paje. Time independent traces are also supported,\n"
- " to output traces that can later be used by the trace replay tool", detailed);
- print_line (OPT_TRACING_FORMAT_TI_ONEFILE, "Only works for SMPI now, and TI output format",
- " By default, each process outputs to a separate file, inside a filename_files folder\n"
- " By setting this option to yes, all processes will output to only one file\n"
- " This is meant to avoid opening thousands of files with large simulations", detailed);
- print_line (OPT_TRACING_COMMENT, "Comment to be added on the top of the trace file.",
- " Use this to add a comment line to the top of the trace file.", detailed);
- print_line (OPT_TRACING_COMMENT_FILE, "File contents added to trace file as comment.",
- " Use this to add the contents of a file to the top of the trace file as comment.", detailed);
- print_line (OPT_VIVA_UNCAT_CONF, "Generate a graph configuration for Viva",
- " This option can be used in all types of simulators build with SimGrid\n"
- " to generate a uncategorized resource utilization graph to be used as\n"
- " configuration for the Viva visualization tool. This option\n"
- " can be used with tracing/categorized:1 and tracing:1 options to\n"
- " analyze an unmodified simulator before changing it to contain\n"
- " categories.", detailed);
- print_line (OPT_VIVA_CAT_CONF, "Generate an uncategorized graph configuration for Viva",
- " This option can be used if this simulator uses tracing categories\n"
- " in its code. The file specified by this option holds a graph configuration\n"
- " file for the Viva visualization tool that can be used to analyze a categorized\n"
- " resource utilization.", detailed);
- print_line (OPT_TRACING_TOPOLOGY, "Register the platform topology as a graph",
- " This option (enabled by default) can be used to disable the tracing of\n"
- " the platform topology in the trace file. Sometimes, such task is really\n"
- " time consuming, since it must get the route from each host to other hosts\n"
- " within the same Autonomous System (AS).", detailed);
-}
-
-static void output_types (const char *name, xbt_dynar_t types, FILE *file)
-{
- unsigned int i;
- fprintf (file, " %s = (", name);
- for (i = xbt_dynar_length(types); i > 0; i--) {
- char *type = *(static_cast<char**>(xbt_dynar_get_ptr(types, i - 1)));
- fprintf (file, "\"%s\"", type);
- if (i - 1 > 0){
- fprintf (file, ",");
- }else{
- fprintf (file, ");\n");
- }