[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: xserver-xorg и hal



В сообщении от 5 мая 2009 Alexey Pechnikov написал(a):

> Ты пишешь про работу с shared memory и матричные операции. Про "загружать
> кусками" слова не было. Более того, не так просто разделить матрицу так,
> чтобы по результатам матричной операции с полученными частями можно было
> "собрать" итоговую матрицу. А если это сделать и оперировать разделенной
> матрицей, то общая память совершенно не нужна, т.к. каждый поток вычислений
> работает со своими данными.

Это был всего лишь пример. Вот есть у нас алгоритм, он что-то обрабатывает (ту 
же матрицу, будь она неладна). Алгоритм этот работает в один поток и не 
критичен по скорочти в том смысле, что будет быстрее - хорошо, нет - ну и фиг 
с ним. Чем плох вариант с использованием openMP (пара-тройка срок в коде) и 
задействованием всех ядер в системе (благо их больше чем одно сейчас, как 
правило) ? Про большие объемы сейчас речь не идет, просто "хочется, чтоб 
побыстрее, если можно" (желательно с минимальными изменениями в коде).

> Тебе объяснили, что твой пример с матрицей не подходит, если других
> аргументов нет, имей честность признать это. А насчет ерунды - повежливее
> надо быть, даже если сказать нечего. Разделение матриц вовсю использовалось
> еще на одноядерных компах, поскольку дает возможность обсчитывать огромные
> матрицы при ограниченном ОЗУ и времени (при сбое потеряется только
> результат текущей итерации). И при наличии нескольких
> ядер/процессоров/компов запускается соответствующее число экземпляров
> программы. У нас на кафедре так делали как минимум еще в 90-х.

Ладно, если вы считаете, что этот пример плох - оставим его. Я прекрасно 
осознаю, что практически всё, что считают сейчас - считалось и 30 лет назад. 
Тем не менее, я не считаю существование нитей и openMP - бесполезным. И 
городить огород с процессами, передачей параметров этим процессам, запуском 
их в нужном количестве вручную (т.е. код для этого писать надо, да он еще и 
платформозависимый будет, т.к. банальное определение числа процессоров в 
системе зависит от ОС и т.д.) там, где можно обойтись 2-3 (10) строками для 
включения нитей через openMP - лично мне влом. Если результат будет один и 
тот же - то зачем ? Еще раз повторю - все это ИМХО и применимо не для всех 
задач. Если я и буду делать это через процессы - то только с использованием 
MPI(MPICH) - там все это выглядит естественным и не надо заморачиваться 
с "ручным" запуском всего этого хозяйства.

Reply to: