Russian Qt Forum

Программирование => Общий => Тема начата: bixbit от Июль 18, 2012, 20:44



Название: OpenCL и нематематическая задача
Отправлено: bixbit от Июль 18, 2012, 20:44
Есть нематематическая задача - считать ячейку в ЖД.
Как её выполнить в *.cl файле имея готовый код даной функции (т.е. распаралелить выполнение)?
Или предложите другой метод распаралеливания


Название: Re: OpenCL и нематематическая задача
Отправлено: Igors от Июль 18, 2012, 20:57
В любом случае не существует какого-то общего/универсального способа распараллеливания. Поэтому код ф-ции предъявляем.

Есть нематематическая задача - считать ячейку в ЖД.
У нас в городе построили новый ЖД вокзал (говорят очень красивый хотя я еще не видел). Так что ячейку наверное считаем  :)


Название: Re: OpenCL и нематематическая задача
Отправлено: bixbit от Июль 18, 2012, 21:13
ЖД - Жесткий диск :)

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

Этот код как пример. Но суть не в самом коде а в том, чтоб получить минимальное время работы при количестве вызовов ~109.


Название: Re: OpenCL и нематематическая задача
Отправлено: Igors от Июль 18, 2012, 21:59
ЖД - Жесткий диск :)

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

Этот код как пример. Но суть не в самом коде а в том, чтоб получить минимальное время работы при количестве вызовов ~109.
Кешировать чтение/запись, распараллеливание здесь ни при чем


Название: Re: OpenCL и нематематическая задача
Отправлено: bixbit от Июль 18, 2012, 22:12
Кешировать чтение/запись, распараллеливание здесь ни при чем
Хорошо. Почитаю про кеширование.
Для конкретной задачи такое можно использовать.

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


Название: Re: OpenCL и нематематическая задача
Отправлено: Igors от Июль 19, 2012, 10:24
А если к примеру нужно делать большое количество get запросов и они независимы как тогда добится максимальной производительности.
Нет какого-то общего способа "чудесного распараллеливания", да и не всегда оно возможно. Напр если "ЖД" один - нет смысла писать параллельно. т.к. льется-то все равно в одну дырочку. Если имеется напр 4 ядра - 100 параллельных запросов не быстрее чем 4 а только медленнее. Поэтому нужен конкретный подход, а не "к примеру"


Название: Re: OpenCL и нематематическая задача
Отправлено: bixbit от Июль 19, 2012, 15:27
А если к примеру нужно делать большое количество get запросов и они независимы как тогда добится максимальной производительности.
Нет какого-то общего способа "чудесного распараллеливания", да и не всегда оно возможно. Напр если "ЖД" один - нет смысла писать параллельно. т.к. льется-то все равно в одну дырочку. Если имеется напр 4 ядра - 100 параллельных запросов не быстрее чем 4 а только медленнее. Поэтому нужен конкретный подход, а не "к примеру"
Мне и не надо "чудесного распараллеливания".
Я хочу разобратся как мжно добиться максимального количества итераций, когда даные, которые мне возвращяет функия приходят с одинаковой задержкой независимо от того зделан 1 или 1000 запросов.
Так какие методы распрараллеливания подходят для круга задач с такой постановкой?


Название: Re: OpenCL и нематематическая задача
Отправлено: Igors от Июль 19, 2012, 15:38
Мне и не надо "чудесного распараллеливания".
Я хочу разобратся как мжно добиться максимального количества итераций, когда даные, которые мне возвращяет функия приходят с одинаковой задержкой независимо от того зделан 1 или 1000 запросов.
Так какие методы распрараллеливания подходят для круга задач с такой постановкой?
Постановки (пока) нет. Все зависит от того что это за ф-ция, что она делает.


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


Название: Re: OpenCL и нематематическая задача
Отправлено: Igors от Июль 19, 2012, 15:55
Отправляет запрос на сервер. Проверяет наличие страницы и доступа к ней.
Насколько мне известно alexis031182 этим довольно плотно занимается. Спросите у него


Название: Re: OpenCL и нематематическая задача
Отправлено: alexis031182 от Июль 19, 2012, 17:26
Я занимаюсь серверной стороной. И под ОС Linux. У Вас, получается, - клиентская часть. В любом случае Вам нужно использовать неблокирующие сокеты, а количество тредов здесь, по идее, не имеет значения, и одного достаточно будет. Или можно разделить на два. Один тред на отправку запросов, а второй - на приём ответов.