[ET Trac] [Einstein Toolkit] #1743: Reduce number of output files per directory

Einstein Toolkit trac-noreply at einsteintoolkit.org
Fri Feb 13 08:25:07 CST 2015

#1743: Reduce number of output files per directory
  Reporter:  eschnett  |       Owner:                     
      Type:  defect    |      Status:  review             
  Priority:  unset     |   Milestone:                     
 Component:  Other     |     Version:  development version
Resolution:            |    Keywords:                     

Comment (by eschnett):

 Replying to [comment:8 rhaas]:
 > I have two suggestions:
 >   * instead of snprintf, strcat, strcpy and Util_snprintf it would be
 easier to use Util_asprintf which allocates memory for the target string


 >   * to allow thorns to compile with both old and new IOUtils version, if
 we want to keep the extra nioprocs argument, we should follow other place
 in IOUtils #define a constant IOUTIL_FILENAME_HAS_NIOPROCS such that user
 code can test for the new API

 I think that's too much trouble. This routine is called from two places
 (PUGHIO and Carpet), and we can just update them.

 >   * do we actually need the extra argument? The function already takes a
 cGH and IOUtil's GH extension contains an nioprocs field already. I am
 also not sure about how file_nioprocs is handled. If it is the same as the
 GH extensions nioprocs then the assert() in line 288 is incorrect since it
 assumes that the first niprocs processes do IO, which is incorrect, see
 the logic in IOUtils SetupGH for how the ioprocs are spread out. If
 file_niprocs is not the same as the GH extensions nioprocs then a
 different variable name may avoid confusion.

 I'll check about the GH extension, and about the meaning of

 > Is it known if this deals with the majority of the output files? There
 are also per-process files written by CarpetLib, Carpet (maybe?) and

 This captures checkpoint files only. Other output does not call this
 function to generate the file name. To make this work, I would rather
 change Carpet to call this function, instead of duplicating the logic
 there. It may be that there's some functionality missing.

Ticket URL: <https://trac.einsteintoolkit.org/ticket/1743#comment:11>
Einstein Toolkit <http://einsteintoolkit.org>
The Einstein Toolkit

More information about the Trac mailing list