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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Заставило задуматься..  (Прочитано 4474 раз)
ieroglif
Гость
« : Апрель 23, 2010, 20:45 »

http://blog.gamedeff.com/?p=303
интересная с моей точки зрения философия.
кто что думает? =)
а если кто чего и думает - какие мысли о реализации?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #1 : Апрель 23, 2010, 21:18 »

тот человек про mpi слышал?)
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Апрель 23, 2010, 21:43 »

Цитировать
Что меняется, если принять такой концепт? Меняется подход к организации вычислений. Каждый “компьютер” (или тред) выполняют задачи. Отдельная задача имеет:

    * входные параметры.
    * выходные данные.
    * константные данные, которые могут требоваться в процессе вычислений.
Не вижу ничего нового. Разбить всю задачу к такие подзадачи - примерно то же распараллеливание, столь же ручное.
Записан
niXman
Гость
« Ответ #3 : Апрель 23, 2010, 22:49 »

Цитировать
а если кто чего и думает - какие мысли о реализации?
мысли такие, что если их описать, получится больше чем сама статья Улыбающийся
...а влом.
Записан
SABROG
Гость
« Ответ #4 : Апрель 23, 2010, 23:10 »

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

Парень Erlang изобретает. Улыбающийся
Ну и для Haskell-я подобные реализации есть, насколько я в курсе.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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