~ubuntu-branches/ubuntu/vivid/adios/vivid-proposed

« back to all changes in this revision

Viewing changes to src/write/adios_mpi_bgq.c

  • Committer: Package Import Robot
  • Author(s): Alastair McKinstry
  • Date: 2014-06-16 23:06:38 UTC
  • mfrom: (15.1.8 sid)
  • Revision ID: package-import@ubuntu.com-20140616230638-cxryhot6b8ge32l6
Tags: 1.7.0-1
* New upstream release.
* Add adios.pc pkgconfig file. adios_config now uses this.

Show diffs side-by-side

added added

removed removed

Lines of Context:
314
314
 
315
315
    while (total_written < len)
316
316
    {
317
 
        write_len = (to_write > INT32_MAX) ? INT32_MAX : to_write;
 
317
        write_len = (to_write > MAX_MPIWRITE_SIZE) ? MAX_MPIWRITE_SIZE : to_write;
318
318
        MPI_File_write (fh, buf_ptr, write_len, MPI_BYTE, &status);
319
319
        MPI_Get_count(&status, MPI_BYTE, &count);
320
320
        if (count != write_len)
1049
1049
    data.buffer = 0;
1050
1050
    data.buffer_len = 0;
1051
1051
 
1052
 
    switch (md->b.version & ADIOS_VERSION_NUM_MASK)
 
1052
    uint32_t version = md->b.version & ADIOS_VERSION_NUM_MASK;
 
1053
    switch (version)
1053
1054
    {
1054
1055
        case 1:
 
1056
        case 2:
1055
1057
        {
1056
1058
            // the three section headers
1057
1059
            struct adios_process_group_header_struct_v1 pg_header;
1133
1135
 
1134
1136
        default:
1135
1137
            adios_error (err_invalid_file_version, 
1136
 
                    "MPI_BGQ method read: file version unknown: %u\n",
1137
 
                    md->b.version);
 
1138
                    "MPI_BGQ method read: file version unknown: %u\n", version);
1138
1139
            return;
1139
1140
    }
1140
1141
 
1200
1201
            if (fd->shared_buffer == adios_flag_yes)
1201
1202
            {    
1202
1203
                // if we need to write > 2 GB, need to do it in parts
1203
 
                // since count is limited to INT32_MAX (signed 32-bit max).
 
1204
                // since count is limited to MAX_MPIWRITE_SIZE (signed 32-bit max).
1204
1205
                uint64_t bytes_written = 0; 
1205
1206
                int32_t to_write = 0; 
1206
 
                if (fd->bytes_written > INT32_MAX)
 
1207
                if (fd->bytes_written > MAX_MPIWRITE_SIZE)
1207
1208
                {    
1208
 
                    to_write = INT32_MAX;
 
1209
                    to_write = MAX_MPIWRITE_SIZE;
1209
1210
                }    
1210
1211
                else 
1211
1212
                {    
1249
1250
                    bytes_written += to_write;
1250
1251
                    if (fd->bytes_written > bytes_written)
1251
1252
                    {
1252
 
                        if (fd->bytes_written - bytes_written > INT32_MAX)
 
1253
                        if (fd->bytes_written - bytes_written > MAX_MPIWRITE_SIZE)
1253
1254
                        {
1254
 
                            to_write = INT32_MAX;
 
1255
                            to_write = MAX_MPIWRITE_SIZE;
1255
1256
                        }
1256
1257
                        else
1257
1258
                        {
1387
1388
      
1388
1389
                    while (total_written < buffer_offset)
1389
1390
                    {
1390
 
                        write_len = (to_write > INT32_MAX) ? INT32_MAX : to_write;
 
1391
                        write_len = (to_write > MAX_MPIWRITE_SIZE) ? MAX_MPIWRITE_SIZE : to_write;
1391
1392
                        err = MPI_File_write (md->fh, buf_ptr, write_len, MPI_BYTE, &md->status);
1392
1393
 
1393
1394
                        MPI_Get_count(&md->status, MPI_BYTE, &count);