Russian Qt Forum
Май 01, 2024, 09:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 [3]   Вниз
  Печать  
Автор Тема: параллельная обработка файлов  (Прочитано 19077 раз)
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #30 : Февраль 24, 2016, 13:08 »

процессор 2.4GHz Intel Core i5, реальных 2 ядра, виртуальных — 4. но это дебаг сборка была (и под мак ос).
в релиз сборке студией 2015 10к файлов обрабатывается чуть менее 3-х минут Улыбающийся правда, тут машина чуть помощнее.
тут частота 2.8, ядер столько же.

омп может попробую, но позже. спасибо.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #31 : Февраль 25, 2016, 17:14 »

попробовал с омп с 4-мя потоками — по времени вышло столько же Улыбающийся

а с 8-ю потоками вышло аж на 4 секунды быстрее.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #32 : Февраль 25, 2016, 17:16 »

попробовал с омп с 4-мя потоками — по времени вышло столько же Улыбающийся

а с 8-ю потоками вышло аж на 4 секунды быстрее.
Что-то не так. Частенько бывает что время съедается на индикаторе прогресса
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #33 : Февраль 25, 2016, 17:20 »

я его отключил (выставил в неопределенное состояние) т.к. непонятно как там прогресс обновлять

результат каждого таска пишется в QTextBrowser, но у него я отключаю обновления до завершения обработки
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #34 : Февраль 26, 2016, 06:52 »

я его отключил (выставил в неопределенное состояние) т.к. непонятно как там прогресс обновлять

результат каждого таска пишется в QTextBrowser, но у него я отключаю обновления до завершения обработки
Ну профайлить надо. По поводу прогресса: omp задействует и ту нитку из которой был parallel. Можно создать еще нитку и в ней уже parallel (чтобы оставить главную свободной). Но я всегда использую второй способ
Код
C++ (Qt)
int prev = 0;
QAtomicInt numDone = 0;
#pragma omp parallel for
for (int i = 0; i < task.size(); ++i) {
DoTask(task[i]);
++numDone;
#pragma omp master
{
  if (numDone > prev + 100) {
   UpdateUI(numDone);
   prev = numDone;
  }
 }
}
 
Обычно главной нитке и делать-то нечего кроме обновления прогресса, ну и пусть тоже считает, по ходу дела обновляя
« Последнее редактирование: Февраль 26, 2016, 06:55 от Igors » Записан
Страниц: 1 2 [3]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.088 секунд. Запросов: 22.