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.
Этот коммит содержится в:
родитель
db5af26de7
Коммит
0aa3049bfc
@ -31,7 +31,7 @@
|
|||||||
#include "ompi/mca/io/io.h"
|
#include "ompi/mca/io/io.h"
|
||||||
#include "io_ompio.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_bytes_per_agg = OMPIO_PREALLOC_MAX_BUF_SIZE;
|
||||||
int mca_io_ompio_num_aggregators = -1;
|
int mca_io_ompio_num_aggregators = -1;
|
||||||
int mca_io_ompio_record_offset_info = 0;
|
int mca_io_ompio_record_offset_info = 0;
|
||||||
@ -162,10 +162,10 @@ static int register_component(void)
|
|||||||
MCA_BASE_VAR_SCOPE_READONLY,
|
MCA_BASE_VAR_SCOPE_READONLY,
|
||||||
&mca_io_ompio_coll_timing_info);
|
&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,
|
(void) mca_base_component_var_register(&mca_io_ompio_component.io_version,
|
||||||
"cycle_buffer_size",
|
"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,
|
MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
|
||||||
OPAL_INFO_LVL_9,
|
OPAL_INFO_LVL_9,
|
||||||
MCA_BASE_VAR_SCOPE_READONLY,
|
MCA_BASE_VAR_SCOPE_READONLY,
|
||||||
|
@ -106,7 +106,12 @@ int ompio_io_ompio_file_read (mca_io_ompio_file_t *fh,
|
|||||||
&decoded_iov,
|
&decoded_iov,
|
||||||
&iov_count);
|
&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);
|
cycles = ceil((float)max_data/bytes_per_cycle);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -103,7 +103,12 @@ int ompio_io_ompio_file_write (mca_io_ompio_file_t *fh,
|
|||||||
&decoded_iov,
|
&decoded_iov,
|
||||||
&iov_count);
|
&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);
|
cycles = ceil((float)max_data/bytes_per_cycle);
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user