PARALLEL.RU

Дискуссионный клуб по параллельным вычислениям
Текущее время: 19 ноя 18 4:01

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: MPI, обмен данными типов STL (map, vector)
СообщениеДобавлено: 18 авг 12 23:29 
Не в сети

Зарегистрирован: 5 авг 12 16:26
Сообщения: 2
Здравствуйте!

Такой вопрос. В программе активно были использованы STL шаблоны. (размер неизвестен изначально, т.е. формировались элементы динамически) и теперь необходимо перегнать эту программу с использованием библиотеки MPI. Но для передачи всех этих параметров, необходимо знать размер данных и их тип. Если размер не определен изначально, как можно решить данную проблему? Пожалуйста, подскажите.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 авг 12 15:56 
Не в сети

Зарегистрирован: 2 ноя 11 19:40
Сообщения: 26
Откуда: Владивосток
как вариант
сначала передать число - размер блока данных
потом передать сам блок данных


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 авг 12 23:59 
Не в сети

Зарегистрирован: 5 авг 12 16:26
Сообщения: 2
Спасибо!

Если Вас не затруднит, посоветуйте, что можно сделать еще в такой ситуации:

Все эти STL шаблоны являются полями того или иного класса. ... Как экземпляр класса передавать через Send/Recv с простыми полями (int, char, ...и тд) я знаю, но как быть с такими достаточно сложными полями как map<char*,MyClass> ? Boost.mpi с его serialization и oompi использовать не могу, т.к. на кластере, на котором будет запускаться программа только ради ее одной устанавливать это никто не будет...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 авг 12 18:33 
Не в сети

Зарегистрирован: 2 ноя 11 19:40
Сообщения: 26
Откуда: Владивосток
кроме сериализации/десериализации для объектов ничего лучше пока не придумано.
вариантов немного:
1. писать собственный сериализатор/десериализатор с определением операторов >> и << для, например, std::stringstream. И потом уже зная размер потока, передавать его между узлами.
2. все же воспользоваться готовой Boost. Собрать ее самостоятельно в своей домашней директории на кластере.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB