Russian Qt Forum

Программирование => Общий => Тема начата: ieroglif от Апрель 23, 2010, 20:45



Название: Заставило задуматься..
Отправлено: ieroglif от Апрель 23, 2010, 20:45
http://blog.gamedeff.com/?p=303
интересная с моей точки зрения философия.
кто что думает? =)
а если кто чего и думает - какие мысли о реализации?


Название: Re: Заставило задуматься..
Отправлено: Авварон от Апрель 23, 2010, 21:18
тот человек про mpi слышал?)


Название: Re: Заставило задуматься..
Отправлено: Igors от Апрель 23, 2010, 21:43
Цитировать
Что меняется, если принять такой концепт? Меняется подход к организации вычислений. Каждый “компьютер” (или тред) выполняют задачи. Отдельная задача имеет:

    * входные параметры.
    * выходные данные.
    * константные данные, которые могут требоваться в процессе вычислений.
Не вижу ничего нового. Разбить всю задачу к такие подзадачи - примерно то же распараллеливание, столь же ручное.


Название: Re: Заставило задуматься..
Отправлено: niXman от Апрель 23, 2010, 22:49
Цитировать
а если кто чего и думает - какие мысли о реализации?
мысли такие, что если их описать, получится больше чем сама статья :)
...а влом.


Название: Re: Заставило задуматься..
Отправлено: SABROG от Апрель 23, 2010, 23:10
Давно ли существует параллелизация в процессорах? Давно! Несколько конвееров на одном ядре. В каждом выполняется какая-то часть кода. Если одна часть кода зависит от вычислений другой части, то прирост производительности программы за счет параллелизации сводится на нет. Компиляторы худо бедно справляются с этой задачей оптимизируя код под определенную архитектуру, разворачивают циклы, минимизируют непредсказуемые переходы и тому подобное. Вся эта оптимизация производится на неком "среднем" уровне. Только под конкретную задачу и на ассемблере человек может распараллелить свой алгоритм так, как не сможет компилятор. С многоядерностью всё будет тоже самое. Компилятор будет оптимизировать код на автомате на некотором приемлимом уровне, но он не будет в состоянии переписать алгоритм quick sort сначала так, чтобы он не требовал рекурсии, а потом его можно было бы распараллелить, а в итоге понять, что распараллеленная версия radix sort быстрее quick sort, в то время как на одноядерном процессоре ситуация обратная. Достаточно посмотреть на библиотеки типа OpenSSL и встретить в ней ассемблерный код, который был специально написан и оставлен в ней, так как даёт скорость выше чем оптимизация компилятора. Так что однозначного ответа не будет никогда, каждой задаче - свой инструмент.


Название: Re: Заставило задуматься..
Отправлено: Tonal от Апрель 24, 2010, 17:21
Парень Erlang изобретает. :)
Ну и для Haskell-я подобные реализации есть, насколько я в курсе.