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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: OpenCL и нематематическая задача  (Прочитано 5579 раз)
bixbit
Гость
« : Июль 18, 2012, 20:44 »

Есть нематематическая задача - считать ячейку в ЖД.
Как её выполнить в *.cl файле имея готовый код даной функции (т.е. распаралелить выполнение)?
Или предложите другой метод распаралеливания
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #1 : Июль 18, 2012, 20:57 »

В любом случае не существует какого-то общего/универсального способа распараллеливания. Поэтому код ф-ции предъявляем.

Есть нематематическая задача - считать ячейку в ЖД.
У нас в городе построили новый ЖД вокзал (говорят очень красивый хотя я еще не видел). Так что ячейку наверное считаем  Улыбающийся
Записан
bixbit
Гость
« Ответ #2 : Июль 18, 2012, 21:13 »

ЖД - Жесткий диск Улыбающийся

Код:
if (ReadFile (hFile, buff, BYTECOUNT, &dwBytesRead, NULL))
{
xor(buff, hash,buff);
WriteFile (hAppend, buff, dwBytesRead,&dwBytesWritten, NULL);
}

Этот код как пример. Но суть не в самом коде а в том, чтоб получить минимальное время работы при количестве вызовов ~109.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #3 : Июль 18, 2012, 21:59 »

ЖД - Жесткий диск Улыбающийся

Код:
if (ReadFile (hFile, buff, BYTECOUNT, &dwBytesRead, NULL))
{
xor(buff, hash,buff);
WriteFile (hAppend, buff, dwBytesRead,&dwBytesWritten, NULL);
}

Этот код как пример. Но суть не в самом коде а в том, чтоб получить минимальное время работы при количестве вызовов ~109.
Кешировать чтение/запись, распараллеливание здесь ни при чем
Записан
bixbit
Гость
« Ответ #4 : Июль 18, 2012, 22:12 »

Кешировать чтение/запись, распараллеливание здесь ни при чем
Хорошо. Почитаю про кеширование.
Для конкретной задачи такое можно использовать.

Это одна из задач. А если к примеру нужно делать большое количество get запросов и они независимы как тогда добится максимальной производительности.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #5 : Июль 19, 2012, 10:24 »

А если к примеру нужно делать большое количество get запросов и они независимы как тогда добится максимальной производительности.
Нет какого-то общего способа "чудесного распараллеливания", да и не всегда оно возможно. Напр если "ЖД" один - нет смысла писать параллельно. т.к. льется-то все равно в одну дырочку. Если имеется напр 4 ядра - 100 параллельных запросов не быстрее чем 4 а только медленнее. Поэтому нужен конкретный подход, а не "к примеру"
Записан
bixbit
Гость
« Ответ #6 : Июль 19, 2012, 15:27 »

А если к примеру нужно делать большое количество get запросов и они независимы как тогда добится максимальной производительности.
Нет какого-то общего способа "чудесного распараллеливания", да и не всегда оно возможно. Напр если "ЖД" один - нет смысла писать параллельно. т.к. льется-то все равно в одну дырочку. Если имеется напр 4 ядра - 100 параллельных запросов не быстрее чем 4 а только медленнее. Поэтому нужен конкретный подход, а не "к примеру"
Мне и не надо "чудесного распараллеливания".
Я хочу разобратся как мжно добиться максимального количества итераций, когда даные, которые мне возвращяет функия приходят с одинаковой задержкой независимо от того зделан 1 или 1000 запросов.
Так какие методы распрараллеливания подходят для круга задач с такой постановкой?
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Июль 19, 2012, 15:38 »

Мне и не надо "чудесного распараллеливания".
Я хочу разобратся как мжно добиться максимального количества итераций, когда даные, которые мне возвращяет функия приходят с одинаковой задержкой независимо от того зделан 1 или 1000 запросов.
Так какие методы распрараллеливания подходят для круга задач с такой постановкой?
Постановки (пока) нет. Все зависит от того что это за ф-ция, что она делает.
Записан
bixbit
Гость
« Ответ #8 : Июль 19, 2012, 15:43 »

Мне и не надо "чудесного распараллеливания".
Я хочу разобратся как мжно добиться максимального количества итераций, когда даные, которые мне возвращяет функия приходят с одинаковой задержкой независимо от того зделан 1 или 1000 запросов.
Так какие методы распрараллеливания подходят для круга задач с такой постановкой?
Постановки (пока) нет. Все зависит от того что это за ф-ция, что она делает.
Отправляет запрос на сервер. Проверяет наличие страницы и доступа к ней.
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #9 : Июль 19, 2012, 15:55 »

Отправляет запрос на сервер. Проверяет наличие страницы и доступа к ней.
Насколько мне известно alexis031182 этим довольно плотно занимается. Спросите у него
Записан
alexis031182
Гость
« Ответ #10 : Июль 19, 2012, 17:26 »

Я занимаюсь серверной стороной. И под ОС Linux. У Вас, получается, - клиентская часть. В любом случае Вам нужно использовать неблокирующие сокеты, а количество тредов здесь, по идее, не имеет значения, и одного достаточно будет. Или можно разделить на два. Один тред на отправку запросов, а второй - на приём ответов.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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