Question:

Why is the results file larger when running with >1 processors. Can you provide any info?


Answer:

To understand why results files are larger when multiple processors are used, it is best to start with the description of how the results file is created when a single processor is used. The results file is written as a random access file meaning that any point along the file can be written or read at any time. But the file is actually written sequentially in that ANSYS starts at the beginning of the file and adds records at the next available point on the file. ANSYS uses routine BIOWRT8 (or BINWRT8 for user created files) to process the data and one of the arguments, LOC, is the starting location of that record on the file. The routines that actually interface with the file will then return to BIOWRT8 the location of the NEXT random access location in argument LOC and the program uses that value the next time BIOWRT8 is called. Included in these random access records are pointer records that contain the location along the file where specific information may be found such as the pointers to the load step headers, or the pointers to the individual records. Details of the structure of the results file may be found the Programmer's Manual. So, ANSYS will open the results file and begin by writing the Binary File Header Record (100 integers long) which will contain information about the binary file (type of binary file, length, date, time, Release Number, etc). This will be followed by the Results File Header Record (40 integers long) which will contain model information (number of nodes, number of elements, number of results, etc) and the pointers to the other information on the file (pointer to the result data sets, pointer to the geometry header, etc). At this point, most of the integers in the Results File Header Record are zero and the record is written to hold the place of the Results File Header Record on the file. ANSYS will t


Question:

Why is the results file larger when running with >1 processors. Can you provide any info?


Answer:

To understand why results files are larger when multiple processors are used, it is best to start with the description of how the results file is created when a single processor is used. The results file is written as a random access file meaning that any point along the file can be written or read at any time. But the file is actually written sequentially in that ANSYS starts at the beginning of the file and adds records at the next available point on the file. ANSYS uses routine BIOWRT8 (or BINWRT8 for user created files) to process the data and one of the arguments, LOC, is the starting location of that record on the file. The routines that actually interface with the file will then return to BIOWRT8 the location of the NEXT random access location in argument LOC and the program uses that value the next time BIOWRT8 is called. Included in these random access records are pointer records that contain the location along the file where specific information may be found such as the pointers to the load step headers, or the pointers to the individual records. Details of the structure of the results file may be found the Programmer`s Manual. So, ANSYS will open the results file and begin by writing the Binary File Header Record (100 integers long) which will contain information about the binary file (type of binary file, length, date, time, Release Number, etc). This will be followed by the Results File Header Record (40 integers long) which will contain model information (number of nodes, number of elements, number of results, etc) and the pointers to the other information on the file (pointer to the result data sets, pointer to the geometry header, etc). At this point, most of the integers in the Results File Header Record are zero and the record is written to hold the place of the Results File Header Record on the file. ANSYS will then continue writing the information to the results file as it is created. In particular for the stress results that are created by the program, the specific results, such as stresses, elastic strains, plastic strains, etc, for the individual elements are written as separate records, then the pointers for the separate element output are written to the Individual Element Index Table and then the pointer for that element`s Individual Element Index Table is written to the Element Solutions Index Table. At the end of the run, when the information about the data on the results file is known, ANSYS will overwrite Results File Header Record with the appropriate information, overwrite the Binary File Header Record and close the file. Throughout this process, the information was written to the next available location on the file and no gaps will exist since the next available location is always known.

This situation changes when multiple processors are used since the output is written to the results file as it is created and is not processed though some intermediate storage. This is not a problem for the Binary File Header Record or the Result File Header Record since these records are always at the same location on the file. But for other results, such as the element results, it is necessary to use the pointer system to find the results on the file and these pointers are not known a priori. Particularly for the stress output coming from different processors, the output from a particular processor is written to the results file sequentially but all of the processors are putting out data at the same time starting at different locations along the file. It is possible to estimate the amount of information that will be generated but it is virtually impossible to know for certain the amount of information before it is all created. If the estimate of the amount of output is conservative (estimate is larger that the actual amount of information generated) then gaps will exist on the file where no information is written, as between the end of output for processor 1 and the beginning of output for processor 2. If the estimate of the amount of output is non-conservative, then later data from the low numbered processors will overwrite some of the data from the higher numbered processor. ANSYS takes a conservative approach to the writing of results file when multiple processors are involved to avoid overwriting other element results data.

Then, for a results file written from a multiple processor run, gaps will exist on the file between the data created by the different processors. In an ideal world, those gaps would not exist and the smallest possible file would be created. Occasionally this may be a problem, as when just enough disk space exists for the results file written by a single processor and the multiple processor output exceeds that available space. But the consequences resulting from an error in the output estimate are too great and the more conservative approach should be followed.

So the larger .rst file for multiple processor solutions is not by design, but rather a consequence of the structure of the output. It seems prudent to avoid potential problems by over estimating the amount of storage required and allowing gaps to exist in the results file. Hopefully, this will not create problems for the user.





Show Form
No comments yet. Be the first to add a comment!