Skip to content
Snippets Groups Projects
Commit 60678631 authored by Giacomo Mulas's avatar Giacomo Mulas
Browse files

Merge branch 'fix_io' into 'master'

Draft: fix remounting files from threads and processes, fix pycompare accordingly

See merge request giacomo.mulas/np_tmcode!34
parents df5ddfda ecddd033
No related branches found
No related tags found
No related merge requests found
......@@ -13,7 +13,7 @@
limitations under the License.
*/
/*! \file cluster.cp
/*! \file cluster.cpp
*
* \brief Implementation of the calculation for a cluster of spheres.
*/
......@@ -388,7 +388,7 @@ void cluster(const string& config_file, const string& data_file, const string& o
delete[] chunk_buffer;
MPI_Recv(&chunk_buffer_size, 1, MPI_INT, rr, 1, MPI_COMM_WORLD, MPI_STATUS_IGNORE);
}
fprintf(output, "\n");
// if (ri<remotethreads-1) fprintf(output, "\n");
// now get the binary local file
long buffer_size = 0;
......@@ -508,11 +508,11 @@ void cluster(const string& config_file, const string& data_file, const string& o
string message = "Copying ASCII output in MPI process " + to_string(mpidata->rank) + " of thread " + to_string(ri) + " of " + to_string(ompnumthreads - 1) + "... ";
logger->log(message, LOG_DEBG);
fstream partial_output;
partial_output.open(partial_file_name.c_str(), ios::in | ios::binary);
partial_output.open(partial_file_name.c_str(), ios::in);
partial_output.seekg(0, ios::end);
const long partial_output_size = partial_output.tellg();
partial_output.close();
partial_output.open(partial_file_name.c_str(), ios::in | ios::binary);
partial_output.open(partial_file_name.c_str(), ios::in);
int chunk_buffer_size = 25165824; // Length of char array with 24Mb size
char *chunk_buffer = new char[chunk_buffer_size]();
int full_chunks = (int)(partial_output_size / chunk_buffer_size);
......@@ -535,7 +535,7 @@ void cluster(const string& config_file, const string& data_file, const string& o
delete[] chunk_buffer;
chunk_buffer = new char[chunk_buffer_size];
partial_output.read(chunk_buffer, chunk_buffer_size);
chunk_buffer[chunk_buffer_size - 1] = '\0';
// chunk_buffer[chunk_buffer_size - 1] = '\0';
// Send the size of the buffer that is being transmitted (Node-0 does not know whether it is full or not)
MPI_Send(&chunk_buffer_size, 1, MPI_INT, 0, 1, MPI_COMM_WORLD);
// Actually send the file contents to Node-0
......
......@@ -125,7 +125,7 @@ def compare_files(config):
return mismatch_count
f_lines[0] = fortran_file.readline()
c_lines[0] = c_file.readline()
if (c_lines[0] != ''):
if (c_lines[0] not in ['', '\n']):
print("ERROR: C++ file is longer than FORTRAN file.")
fortran_file.close()
c_file.close()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment