В текущий момент структура кода тестирующего приложения имеет следующие недостатки:
-
Нет возможности легко добавлять новый тест коммуникационной среды. Это требует
модификации нескольких исходных файлов и перекомпилирования всего тестирующего
приложения. Предлагается вместо этого каждый отдельный тест оформить как plugin.
Для этого исходные коды теста поместить в отдельную динамически подгружаемую
библиотеку (например one_to_one.so), которую подгружать в память уже исполняющейся программе. Тест должен иметь своё имя, короткое описание и полное описание, которые
можно получить как символы из .so файла. Так же тест должен уметь получать и читать
специфичные для него аргументы, передаваемые программе (вызов из .so файла функции parse_test_arguments). Данное изменение повлечёт так же изменение в формате NetCDF файлолв с результатами тестирования. Вместо задаваемого числом типа теста,
тип теста должен быть задан строкой.
-
Для "шумящих" тестов нет возможности указания и фиксации конкретных "шумящих" узлов клапстера. Требуется в параметры шумящих тестов добавить возможность указания
множества шумящих узлов кластера.
-
В файлы пишет только один MPI-процесс. В текущий момент устроено так, что только
один MPI-процесс (0 на MPI_COMM_WORLD) пишет результаты тестирования в файл.
Остальные процессы щлют ему свою порцию данных. Это приводит к тормозам и лишней
активности в коммуникациях. Предлагается сделать так, чтобы каждый MPI-процесс
записывал свою порцию данных в NetCDF файл самостоятельно.
Все проделываемые изменения внести в ветку tests_as_plugins и когда всё будет работать как надо сделать merge с веткой master.
В текущий момент структура кода тестирующего приложения имеет следующие недостатки:
Нет возможности легко добавлять новый тест коммуникационной среды. Это требует
модификации нескольких исходных файлов и перекомпилирования всего тестирующего
приложения. Предлагается вместо этого каждый отдельный тест оформить как plugin.
Для этого исходные коды теста поместить в отдельную динамически подгружаемую
библиотеку (например one_to_one.so), которую подгружать в память уже исполняющейся программе. Тест должен иметь своё имя, короткое описание и полное описание, которые
можно получить как символы из .so файла. Так же тест должен уметь получать и читать
специфичные для него аргументы, передаваемые программе (вызов из .so файла функции parse_test_arguments). Данное изменение повлечёт так же изменение в формате NetCDF файлолв с результатами тестирования. Вместо задаваемого числом типа теста,
тип теста должен быть задан строкой.
Для "шумящих" тестов нет возможности указания и фиксации конкретных "шумящих" узлов клапстера. Требуется в параметры шумящих тестов добавить возможность указания
множества шумящих узлов кластера.
В файлы пишет только один MPI-процесс. В текущий момент устроено так, что только
один MPI-процесс (0 на MPI_COMM_WORLD) пишет результаты тестирования в файл.
Остальные процессы щлют ему свою порцию данных. Это приводит к тормозам и лишней
активности в коммуникациях. Предлагается сделать так, чтобы каждый MPI-процесс
записывал свою порцию данных в NetCDF файл самостоятельно.
Все проделываемые изменения внести в ветку tests_as_plugins и когда всё будет работать как надо сделать merge с веткой master.