LINUX.ORG.RU

Бекус и узкое горлышко

 ,


0

1

Я читанул немного Бекуса, но оказалось слишком заумно для меня. Я ничо не понял. И особенно я не понял, каким образом он своим ФП-стилем собирался избавиться от узкого горлышка Фон-Неймана? Я, кстати, вообще не понимаю, как с помощью ФП-парадигмы кто-то может от него избавиться, хотя сейчас это повсюду декларируется. Единственный способ избавиться от этого горлышка — это параллелизм. А LC параллелиться чуть меньше чем никак. Это последовательная модель вычислений. Тогда откуда эти ко-ко-ко появляются???



Последнее исправление: avtoritetniy-expert (всего исправлений: 1)
Ответ на: комментарий от MyTrooName

А как ты собирался параллелить LC, если это частный случай Global State Machine и состоит из последовательности редукций, 1 редукция — 1 состояние? Какой там параллелизм может быть?

anonymous
()
Ответ на: комментарий от anonymous

А как ты собирался параллелить LC, если это частный случай Global State Machine и состоит из последовательности редукций, 1 редукция — 1 состояние?

чушь. GSM - лишь один из возможных способов раскрутить LC. а ты его прям в дефиниции определил

ссылка на вики выше

MyTrooName ★★★★★
()
Последнее исправление: MyTrooName (всего исправлений: 1)
Ответ на: комментарий от MyTrooName

LC != модель акторов

Кто такую чушь утверждал. Только больной напрочь мозг может заподозрить, чnо кто-то их может приравнять. Я тебе дал ссылку на раздел о LC

avtoritetniy-expert
() автор топика
Ответ на: комментарий от MyTrooName

подлежащее

Разуй глаза и прочитай наконец ссылку о которой рассуждаешь

Модель подстановок непригодна для параллелизма, поскольку она не обеспечивает возможность совместного использования ресурсов.

avtoritetniy-expert
() автор топика
Ответ на: комментарий от MyTrooName

Об этом же и Барендрегт писал, в первых же страницах на это обращается внимание, иди учи матчасть, школьнег.

avtoritetniy-expert
() автор топика
Ответ на: комментарий от tailgunner

Ты конкретно с Бекусом согласен, в том что ФП избавляет от узкого горлышка? Каким образом оно может избавить. Ну и заодно хочу спросить, ты с кем несогласен, с Энгельсом или с Каутским?

avtoritetniy-expert
() автор топика
Ответ на: комментарий от MyTrooName

Parallelism_and_concurrency

Да, интересное заключение. По вашему каррирование в произвольном порядке (или это или то в один момент) уже само по себе может обеспечить параллелизм (и то и это в один момент)? Описать может и может, в некоторой степени, но не обеспечить. Похоже на буржуйской википедии тоже надо ходить всем авторам сопли вытирать.

anonymous
()
Ответ на: комментарий от MyTrooName

Вот на этом месте я чуть со стула не упал.

can be carried out in any order, even in parallel

Параллельный ПОРЯДОК вычислений

avtoritetniy-expert
() автор топика
Ответ на: комментарий от KblCb

Ты можешь редуцировать графы хоть жопно, от этого вычисления (сам процесс редукции) не станут парралельными. Это будет последовательное описание параллельного процесса, которого нет по-факту.

avtoritetniy-expert
() автор топика
Ответ на: комментарий от KblCb

вот такой процесс result=expr1+expr2 уже и так является потенциально параллельным, поскольку expr1 и expr2 могут быть вычислены на разных машинах. Оттого, что ты запишешь его как

((/result->result) (/x/y->x+y))
у тебя ничего не распараллелится.

anonymous
()
Ответ на: комментарий от Deleted

Потому что степень тупизны у людей не зашкаливает за критическую отметку, как у тебя петушок.

anonymous
()
Ответ на: комментарий от anonymous

вот такой процесс result=expr1+expr2 уже и так является потенциально параллельным, поскольку expr1 и expr2 могут быть вычислены на разных машинах

Ну и выполняй, в чём проблема?

((/result->result) (/x/y->x+y))

В математике анонимные функции записываются как λx. t[x] или x ↦ t[x], в хаскеле — \x -> t[x].

quasimoto ★★★★
()
Ответ на: комментарий от anonymous

. По вашему каррирование в произвольном порядке (или это или то в один момент) уже само по себе может обеспечить параллелизм (и то и это в один момент)?

каррирование - это компайл-тайм операция. причем оно тут?

MyTrooName ★★★★★
()
Ответ на: комментарий от quasimoto

В математике анонимные функции записываются как λx. t[x] или x ↦ t[x], в хаскеле — \x -> t[x].

Какое это отношение имеет к параллелизму?

anonymous
()
Ответ на: комментарий от MyTrooName

причем оно тут?

В ссылке, которую Вы дали делается упор на каррирование, на этом основывается якобы возможность параллелизма.

anonymous
()
Ответ на: комментарий от MyTrooName

Впрочем, там далее, собственно, говориться о невозможности выражения параллелизма

However, the lambda calculus does not offer any explicit constructs for parallelism

О чем они вообще там говорят, хрен поймешь. И правильно эксперт выше заметил, сама по себе фраза «параллельный порядок» в контексте вычислений — это оксюморон.

anonymous
()
Ответ на: комментарий от anonymous

Никакое, просто так не пишут.

А про параллелизм — раз, два. По-моему, всё понятно с ОП вопросом (по крайней мере, на текущий исторический момент :)).

quasimoto ★★★★
()
Последнее исправление: quasimoto (всего исправлений: 1)
Ответ на: комментарий от quasimoto

Нет, мне не совсем понятно. ФП основано на LC модели вычисления, которая не параллельна по своей сути. Если вы про то, что компилятор может вытащить из лямбда-like кода куски, которые можно распараллелить, то это не совсем о том. Это даже не касается программиста, пишушего на ЯП, исключительно дизайнера этого ЯП. Вопрос в том был, как с помощью ФП Бэкус собирался избавиться от горлышка фон-Неймана. Это не совсем понятно.

anonymous
()
Ответ на: комментарий от anonymous

ФП основано на LC модели вычисления, которая не параллельна по своей сути.

Тогда не очень понятен пример expr1 + expr2 — параллельное по сути должно независимо вычислить expr1 и expr2 (и их подветки тоже параллельно) и сделать потом _+_ (у которого data dependency на результаты)? Ну в LC оно так и может происходить, но http://en.wikipedia.org/wiki/Implicit_parallelism#Disadvantages, поэтому (и учитывая нынешние API к параллелизму) нужно сначала разобраться — нужно ли оно (профайлер и т.п.) и потом делать, например, http://chimera.labs.oreilly.com/books/1230000000929/ch02.html#sec_par-rpar-rseq.

Вопрос в том был, как с помощью ФП Бэкус собирался избавиться от горлышка фон-Неймана. Это не совсем понятно.

Ну вот http://en.wikipedia.org/wiki/Von_Neumann_architecture#Von_Neumann_bottleneck

It is less clear whether the intellectual bottleneck that Backus criticized has changed much since 1977. Backus's proposed solution has not had a major influence.[citation needed] Modern functional programming and object-oriented programming are much less geared towards «pushing vast numbers of words back and forth» than earlier languages like Fortran were, but internally, that is still what computers spend much of their time doing, even highly parallel supercomputers.

quasimoto ★★★★
()
Ответ на: комментарий от quasimoto

Ну в LC оно так и может происходить

Для того, чтобы данное вычисление, как и любое другое распараллелить, нужно дать подвыражениям вычислиться на разных машинах, затем записать результат в общую переменную (файл, ресурс), с которого они должны быть считаны и довычеслены. С совместным доступом к общему ресурсу у модели LC, как раз-таки серьезные проблемы.

Backus's proposed solution has not had a major influence

Да, я понял, все положили болт, но в чем же все-таки смысл, этого Backus's proposed solution, если это просто невозможно в принципе.

Может быть, рассуждения Бэкуса были, тупо, ошибочными, а популяризация ФП-идей объясняется просто хорошей анализируемостью кода для оптимизации, а, при этом, ни к параллельности, ни к горлышку ФП не имеет никакого отношения?

anonymous
()
Ответ на: комментарий от MyTrooName

Хватит разводить демагогию.Я специально пропустил эту хрень. Она не имеет ни малейшего смысла. Представьте себе, что я говорю Вам: эта программа, мать твою, параллельна, просто поверь мне сынок, ты понял о чем я? Вот это тоже модель вычисления с implict поддержкой. Хватит трахать людям мозг.

anonymous
()
Ответ на: комментарий от anonymous

Хватит разводить демагогию

я лишь указываю, что ваш пруф некорректен.

если вашим мозгам от этого больно, займитесь чем-нибудь попроще LC

специально пропустил эту хрень

no comments

Вот это тоже модель вычисления с implict поддержкой

не надо путать модель вычислений и её имплементацию

MyTrooName ★★★★★
()
Ответ на: комментарий от MyTrooName

пруф некорректен

Пруф, совершенно корректный, и конкретный, был приведен выше, так же он содержиться в книге Барендрегта, который прямо указывает, что LC не поддерживает параллелизм. Мне этого достаточно, чтобы делать выводы.

не надо путать

Если кто-то здесь что-то и путает, так это Вы. А идет все от желания притянуть ФП ко всему, чему не попадя.

anonymous
()
Ответ на: комментарий от anonymous

Может быть, рассуждения Бэкуса были, тупо, ошибочными, а популяризация ФП-идей объясняется просто хорошей анализируемостью кода для оптимизации, а, при этом, ни к параллельности, ни к горлышку ФП не имеет никакого отношения?

this

anonymous
()
Ответ на: комментарий от anonymous

С совместным доступом к общему ресурсу у модели LC, как раз-таки серьезные проблемы.

Мне не понятно как это мешает неявному параллельному выполнению. Ну и явный параллелизм с ресурсами можно добавить на уровне языка и теории.

Может быть, рассуждения Бэкуса были, тупо, ошибочными, а популяризация ФП-идей объясняется просто хорошей анализируемостью кода для оптимизации, а, при этом, ни к параллельности, ни к горлышку ФП не имеет никакого отношения?

Они и не совсем про ФП были, http://en.wikipedia.org/wiki/Function-level_programming.

А параллелизм ко всему имеет отношение, хоть и к ФП http://www.cse.chalmers.se/edu/course/pfp/lectures.html.

quasimoto ★★★★
()
Ответ на: комментарий от Miguel

Окстись. Это ж отец ФП, особенно бесточечный стиль любил. Он называл лисп — объектным языком, доказывал, что он сливает его детищу FP(functional programming). Между делом, спроектировал мелкий язычок, фортран, про который никто почти не знал, кроме нобелевцев, которые почему то вручили ему нобелевку за его разработку. Алсо, некоторые индусы слыхали про нотацию Бэкуса-Наура, но это не для Илит инфа, знать необязательно. Короче крестьянин какой-то, хз кто такой.

anonymous
()
Ответ на: комментарий от anonymous

LC не поддерживает параллелизм

конечно не поддерживает, LC и параллелизм - вещи ортогональные

MyTrooName ★★★★★
()

Я ничо не понял.

This.

Сначала разупорись, потом пиши на лор. Не наоборот.

hateyoufeel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.