![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
Косяк в том, что писалась в те времена, когда про двухядерки еще и не подозревали
![]() ![]() Добавлено @ 12:00 ЗЫ Функции - в смысле функциональная часть. Не математическая. Обработка инфы (файлов и не только), вывод результата (специфического для каждой функции) |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: нет Всего: 110 |
просто замечание, основанное только на общих представлениях о параллельном выполнении программ, не подкреплённых опытом:
совсем необязательно распараллеливать каждую функцию в некотором смысле количество распараллеливаний желательно даже уменьшать два ядра дадут двойную скорость только в одном случае: когда между двумя параллельными потоками нет зависимостей, т.е. в начале программы запускаются два потока и делают свою работу независимо друг от друга а чем больше пересылок данных (а значит, всяких взаимных проверок, синхронизаций и пр.), чем меньше производительность по самой задаче потому распараллеливать нужно стараться на как можно более высоком уровне (конечно, эта рекомендация для общего случая, в некоторых ситуациях всё может быть по-другому) -------------------- qqq |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
maxim1000,
Спасибо и на том... |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Если это относится к твоей проге silentbob, то делаешь 1+n потоков (где n - число ядер):
1. Составляет список файлов. 2... n. Обрабатывают файлы из списка, составленного первым потоком. 1-й поток сильно завязан на дисковую подсистему, поэтому больше всего времени будет простаивать в ожидании данных с дисков. Остальные же только ждут появления файлов в списке. Но что-то мне подсказывает, что в любом случае самым узким местом будет первый поток. ![]() |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
bsa,
Да, про него я, про кого ж еще ![]() Вот с первыми двумя пунктами, которые ты написал, еще что-то понятно, но там еще третий... Сборка все в одну кучу ![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
Смотри, можно сделать программу 2-ух процессной, процессы чем-нибудь соединить (IPC, каналы, локальные сокеты, ...). Первый процесс - многопоточный, реализует обработку файлов, как сказал bsa, второй процесс - собирает выходные данные. Главное унифицировать эти выходные данные, чтоб это не было просто потоком байт -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
GrayCardinal |
|
|||
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 8 Всего: 58 |
Вот с этим как раз большие проблемы............................ ![]() ОК, ладно, понял.... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |