Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Есть модульная прога, С кучей функций. 
:(
    Опции темы
GrayCardinal
Дата 3.10.2006, 11:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



Косяк в том, что писалась в те времена, когда про двухядерки еще и не подозревали  smile Внимание вопрос - где бы почитать как это делается (распараллеливание) ? Что-нить умное желательно. Тема-то серьезная. Мне же надо каждую функцию того... распараллелить. А писать многопоточную обертку для каждой не очень хочется (мягко говоря).  smile

Добавлено @ 12:00 
ЗЫ
Функции - в смысле функциональная часть. Не математическая. Обработка инфы (файлов и не только), вывод результата (специфического для каждой функции)


--------------------
PM MAIL WWW   Вверх
maxim1000
Дата 3.10.2006, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: нет
Всего: 110



просто замечание, основанное только на общих представлениях о параллельном выполнении программ, не подкреплённых опытом:

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


--------------------
qqq
PM WWW   Вверх
GrayCardinal
Дата 3.10.2006, 12:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



maxim1000
Спасибо и на том...


--------------------
PM MAIL WWW   Вверх
bsa
Дата 3.10.2006, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 16
Всего: 196



Если это относится к твоей проге silentbob, то делаешь 1+n потоков (где n - число ядер):
1. Составляет список файлов.
2... n. Обрабатывают файлы из списка, составленного первым потоком.

1-й поток сильно завязан на дисковую подсистему, поэтому больше всего времени будет простаивать в ожидании данных с дисков.
Остальные же только ждут появления файлов в списке.
Но что-то мне подсказывает, что в любом случае самым узким местом будет первый поток. smile
PM   Вверх
GrayCardinal
Дата 4.10.2006, 05:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



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



--------------------
PM MAIL WWW   Вверх
MAKCim
Дата 4.10.2006, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата

но там еще третий... Сборка все в одну кучу  smile А выходная инфа разная... Писать для каждой части (в каждый плагин) функцию результирующей "сборки" работы всех процессов ?

Смотри, можно сделать программу 2-ух процессной, процессы чем-нибудь соединить (IPC, каналы, локальные сокеты, ...). Первый процесс - многопоточный, реализует обработку файлов, как сказал 
bsa, второй процесс - собирает выходные данные. Главное унифицировать эти выходные данные, чтоб это не было просто потоком байт


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
GrayCardinal
Дата 4.10.2006, 09:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Фигасе
****


Профиль
Группа: Завсегдатай
Сообщений: 3039
Регистрация: 9.11.2003

Репутация: 8
Всего: 58



Цитата

унифицировать эти выходные данные

Вот с этим как раз большие проблемы............................  smile 
ОК, ладно, понял....


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0727 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.