PARALLEL.RU

Дискуссионный клуб по параллельным вычислениям
Текущее время: 28 сен 20 14:40

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Вопросы и ответы...
СообщениеДобавлено: 17 фев 09 2:59 
Не в сети

Зарегистрирован: 16 ноя 07 19:53
Сообщения: 4
Откуда: ВолгГТУ
Вот код. На одном процессе работает, а на нескольких нет... Почему? Спасибо заранее... (Используется MPICH-2.0)

if(myid==0)
{
//запись в файл
char ch=',';
char ch2='\n';
char ch3='.';
char buffer[100];
MPI_Info info;
MPI_File fh;
MPI_File_delete("Electron Current.3dg", MPI_INFO_NULL);
MPI_File_open(MPI_COMM_WORLD, "Electron Current.3dg", MPI_MODE_RDWR | MPI_MODE_CREATE, MPI_INFO_NULL, &fh);
//MPI_File_set_size(fh, 3 * sizeof(char) * 30 * Count_Electrons + 3 * sizeof(char) * Count_Electrons);
//MPI_File_set_view( fh, 0, MPI_CHAR, MPI_CHAR, "native", MPI_INFO_NULL ) ;
//MPI_File_set_atomicity( fh, 1 ) ;
for(i=0;i<Count_Electrons;i++)
{
_gcvt( Electrons[i]->x, 20, buffer );
MPI_File_write(fh, buffer, strlen(buffer), MPI_CHAR, MPI_STATUS_IGNORE);
MPI_File_write(fh, &ch, 1, MPI_CHAR, MPI_STATUS_IGNORE);
_gcvt( (Electrons[i]->y-(y/2)), 20, buffer );
MPI_File_write(fh, buffer, strlen(buffer), MPI_CHAR, MPI_STATUS_IGNORE);
MPI_File_write(fh, &ch, 1, MPI_CHAR, MPI_STATUS_IGNORE);
_gcvt( (Electrons[i]->z-(z/2)), 20, buffer );
MPI_File_write(fh, buffer, strlen(buffer), MPI_CHAR, MPI_STATUS_IGNORE);
MPI_File_write(fh, &ch2, 1, MPI_CHAR, MPI_STATUS_IGNORE);
}
MPI_File_close(&fh);
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Вопросы и ответы...
СообщениеДобавлено: 17 фев 09 13:11 
Не в сети

Зарегистрирован: 16 ноя 07 19:53
Сообщения: 4
Откуда: ВолгГТУ
Без этой части кода все прекрасно работает, но с ней... :twisted:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вопросы и ответы...
СообщениеДобавлено: 17 фев 09 15:47 
Не в сети

Зарегистрирован: 13 сен 08 18:39
Сообщения: 74
Откуда: Москва
Creater писал(а):
MPI_File_open(MPI_COMM_WORLD, "Electron Current.3dg", MPI_MODE_RDWR | MPI_MODE_CREATE, MPI_INFO_NULL, &fh);


Ну понятное дело почему не работает...

В цитате мы что делаем? Просим во всем MPI_COMM_WORLD открыть файл для совместного использования всеми процессами. Но! Поскольку это кусок кода закрыт ифом (исполняется только для нулвого процесса), нулевой процесс начинает ждать ответа от остальных процессов (что, мол, файл открыт успешно и т.п.). А ответа по понятным причинам нет (потому как остальные процессы знать ничего не знают об этом событии). В свою очередь, остальные процессы, ждут когда нулевой выйдет за иф к следующей MPI-точке, то бишь, всё дружно повисает.

Надо либо грамотно раскрыть иф для всех, либо осуществлять вывод в файл стандартными средствами (не MPI-функциями).

_________________
Дмитрий О. Коломиец.
IBM // МГУ, физфак, каф. математики.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Вопросы и ответы...
СообщениеДобавлено: 17 фев 09 16:52 
Не в сети

Зарегистрирован: 16 ноя 07 19:53
Сообщения: 4
Откуда: ВолгГТУ
Спасибо!!! Хотя я уже пытался так сделать, но по какой-то причине не работало... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Вопросы и ответы...
СообщениеДобавлено: 18 фев 09 2:09 
Не в сети

Зарегистрирован: 16 ноя 07 19:53
Сообщения: 4
Откуда: ВолгГТУ
Если кому-то необходима помощь обращайтесь!!! Работаю со всем нестандартным, инновационным, особенно с искусстенным интеллектом... :twisted: Не стесняйтесь!!! :D


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

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


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

Сейчас этот форум просматривают: Google [Bot] и гости: 2


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

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