1
1

Performance tuning: change the default behavior of ompio to *not* segment individual read/write operations.

In most cases, performance seems to be better if not segmented.
Этот коммит содержится в:
Edgar Gabriel 2015-08-07 13:06:39 -05:00
родитель db5af26de7
Коммит 0aa3049bfc
3 изменённых файлов: 15 добавлений и 5 удалений

Просмотреть файл

@ -31,7 +31,7 @@
#include "ompi/mca/io/io.h"
#include "io_ompio.h"
int mca_io_ompio_cycle_buffer_size = OMPIO_PREALLOC_MAX_BUF_SIZE;
int mca_io_ompio_cycle_buffer_size = -1;
int mca_io_ompio_bytes_per_agg = OMPIO_PREALLOC_MAX_BUF_SIZE;
int mca_io_ompio_num_aggregators = -1;
int mca_io_ompio_record_offset_info = 0;
@ -162,10 +162,10 @@ static int register_component(void)
MCA_BASE_VAR_SCOPE_READONLY,
&mca_io_ompio_coll_timing_info);
mca_io_ompio_cycle_buffer_size = OMPIO_PREALLOC_MAX_BUF_SIZE;
mca_io_ompio_cycle_buffer_size = -1;
(void) mca_base_component_var_register(&mca_io_ompio_component.io_version,
"cycle_buffer_size",
"Cycle buffer size of individual reads/writes",
"Data size issued by individual reads/writes per call",
MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
OPAL_INFO_LVL_9,
MCA_BASE_VAR_SCOPE_READONLY,

Просмотреть файл

@ -106,7 +106,12 @@ int ompio_io_ompio_file_read (mca_io_ompio_file_t *fh,
&decoded_iov,
&iov_count);
bytes_per_cycle = mca_io_ompio_cycle_buffer_size;
if ( -1 == mca_io_ompio_cycle_buffer_size ) {
bytes_per_cycle = max_data;
}
else {
bytes_per_cycle = mca_io_ompio_cycle_buffer_size;
}
cycles = ceil((float)max_data/bytes_per_cycle);
#if 0

Просмотреть файл

@ -103,7 +103,12 @@ int ompio_io_ompio_file_write (mca_io_ompio_file_t *fh,
&decoded_iov,
&iov_count);
bytes_per_cycle = mca_io_ompio_cycle_buffer_size;
if ( -1 == mca_io_ompio_cycle_buffer_size ) {
bytes_per_cycle = max_data;
}
else {
bytes_per_cycle = mca_io_ompio_cycle_buffer_size;
}
cycles = ceil((float)max_data/bytes_per_cycle);
#if 0