Re: xserver-xorg и hal
В сообщении от 5 мая 2009 Alexey Pechnikov написал(a):
> Ты пишешь про работу с shared memory и матричные операции. Про "загружать
> кусками" слова не было. Более того, не так просто разделить матрицу так,
> чтобы по результатам матричной операции с полученными частями можно было
> "собрать" итоговую матрицу. А если это сделать и оперировать разделенной
> матрицей, то общая память совершенно не нужна, т.к. каждый поток вычислений
> работает со своими данными.
Это был всего лишь пример. Вот есть у нас алгоритм, он что-то обрабатывает (ту
же матрицу, будь она неладна). Алгоритм этот работает в один поток и не
критичен по скорочти в том смысле, что будет быстрее - хорошо, нет - ну и фиг
с ним. Чем плох вариант с использованием openMP (пара-тройка срок в коде) и
задействованием всех ядер в системе (благо их больше чем одно сейчас, как
правило) ? Про большие объемы сейчас речь не идет, просто "хочется, чтоб
побыстрее, если можно" (желательно с минимальными изменениями в коде).
> Тебе объяснили, что твой пример с матрицей не подходит, если других
> аргументов нет, имей честность признать это. А насчет ерунды - повежливее
> надо быть, даже если сказать нечего. Разделение матриц вовсю использовалось
> еще на одноядерных компах, поскольку дает возможность обсчитывать огромные
> матрицы при ограниченном ОЗУ и времени (при сбое потеряется только
> результат текущей итерации). И при наличии нескольких
> ядер/процессоров/компов запускается соответствующее число экземпляров
> программы. У нас на кафедре так делали как минимум еще в 90-х.
Ладно, если вы считаете, что этот пример плох - оставим его. Я прекрасно
осознаю, что практически всё, что считают сейчас - считалось и 30 лет назад.
Тем не менее, я не считаю существование нитей и openMP - бесполезным. И
городить огород с процессами, передачей параметров этим процессам, запуском
их в нужном количестве вручную (т.е. код для этого писать надо, да он еще и
платформозависимый будет, т.к. банальное определение числа процессоров в
системе зависит от ОС и т.д.) там, где можно обойтись 2-3 (10) строками для
включения нитей через openMP - лично мне влом. Если результат будет один и
тот же - то зачем ? Еще раз повторю - все это ИМХО и применимо не для всех
задач. Если я и буду делать это через процессы - то только с использованием
MPI(MPICH) - там все это выглядит естественным и не надо заморачиваться
с "ручным" запуском всего этого хозяйства.
Reply to: