Начать новую тему Ответить на тему  [ Сообщений: 62 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.
Логика, математика, физика 
Автор Сообщение

Зарегистрирован: 22 апр 2011, 12:25
Сообщений: 85
Сообщение Re: Логика и математика
Задача функционального программирования выделить из исходной задачи такие функции, которые можно выполнять параллельно, основываясь исключительно на зависимости этих функций друг от друга.

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

Теперь разберемся с зависимостями:

Наколоть дров - > Затопить баню
Наколоть дров - > Сварить кашу
Принести воды - > Затопить баню
Принести воды - > Сварить кашу

Мы видим, что действия "наколоть дров" и "принести воды" не зависят друг друга и являются первичными, следовательно мы можем их выполнять раньше, при этом не имеет значения, какое действие из этих двух завершим раньше. Поэтому мы можем выполнять эти действия параллельно. Т.е. один человек колет дрова, а другой таскает воду. Соответственно, выполнение дальнейших операций будет возможно, когда будут выполнены эти два действия.

Теперь можно приступать к следующей фазе: "затопить баню", "сварить кашу". Эти действия также не зависят друг от друга поэтому их также можно выполнять параллельно двумя людьми.

То же самое и с компьютерами, которые выполняют функции. Необходимо проанализировать задачи и найти те функции, от которых зависит результат следующих вычислений и выполнить их. При этом их можно выполнить параллельно, так как они могут быть не связаны друг с другом, как и действия "наколоть дров" и "принести воды". Можно подключить вместе несколько компьютеров в единую сеть через, которую они будут обмениваться информацией о завершении той или иной стадии и результатами выполнения. Вычисления, в таком случае, будут выполнены параллельно.

Так и образуется "облако вычислений", в котором сразу действует много функций.


25 авг 2012, 08:26
Профиль
Аватар пользователя

Зарегистрирован: 15 янв 2010, 09:45
Сообщений: 406
Сообщение Re: Логика и математика
Коловрат писал(а):
Впрочем, я так и не смог понять, каким образом работает это самое "облако функций" в компьютере. Ну, если в данном алгоритме пока не выполнена операция А, невозможно приступить к исполнению операции Б, и так далее - то каким образом можно обойти эту трудность?


Коловрат, все дело – в принципе. Если подходить к задаче алгоритмически, то так и есть, пока не выполнен А, исполнение Б не начнется. Так привык мыслить обычный человек, поскольку он существо «однопроцессорное» и «одномерное во времени», он не может разорваться на несколько копий, чтобы делать что-то параллельно. Но если ту же деятельность проводит согласованная группа людей, то планирование работ будет происходить по иным принципам, допускающим параллельность.

Простой пример. Пусть некий человек в праздничный день ждет дома гостей. Причем он не знает наверняка, придет к нему кто-нибудь или нет (это выяснится лишь за час-два до их прихода). Но даже если никто и не придет, он не прочь отметить праздник в одиночестве. Нужно привести себя в порядок, убрать в доме, сходить в магазин, приготовить угощение; накрыть на стол. Если этот человек обычен, то он начнет работу по такому плану: 1) убрать в доме; 2) пойти в магазин – тут возникает проблема, «сколько брать?», ведь неизвестно количество гостей – ему придется брать по максимуму «на всякий случай»; 3) приготовить угощение – та же проблема, сколько готовить? – по максимуму; 4) накрыть на стол – также по максимуму; и т.д. Что мы видим – все вроде бы логично, но очень уж медленно и неэкономно.

Но если человек необычен и, допустим, умеет создавать неограниченное количество своих «дублей»? Очевидно, у него будет другая логика. Он начнет делать все шаги одновременно. С независимыми от других делами (такими как «привести себя в порядок», «убрать в доме») проблем нет – они будут сделаны сразу и параллельно. Но и с зависимыми делами (например, от информации сколько придет гостей) можно также поступить параллельно. Один дубль сразу идет в магазин и караулит там, в ожидании информации о гостях. Другой в это время начинает готовить - что возможно, по минимуму, и тоже ждет информацию о гостях и прихода дубля из магазина с основной частью продуктов. Третий начинает сервировать стол и тоже ждет. Как только гости сообщают о своем приближении и количестве, работы тут же доделывается в параллельном режиме. Получается гораздо быстрее и без лишних «расходов по-максимуму».

Алгоритмические языки программирования реализуют алгоритмический (последовательный) принцип выполнения команд. И даже если у нас есть несколько процессоров-дублей, алгоритмический принцип программирования задачи не позволит их использовать в полную, параллельную силу. А вот функциональный принцип, наоборот, предполагает одновременное исполнение всех функций, при условии, что для них получены все исходные данные. Если для какой-то функции исходных данных пока нет, то ее выполнение все равно начинается, а потом временно приостанавливается до получения этих данных.

Коловрат писал(а):
И ещё вопрос. Когда-то давно я понял, что функция только тогда является функцией (то есть реальной действующей силой, а не фантазией), когда она содержит в себе качество, не содержащееся в исходных параметрах. Для математики это так?


Нет, это скорее общее свойство систем, а не функций - свойство эмерджентности.
В математике понятие функции означает иное. Это механизм, который позволяет проецировать одно значение (из области определения) в другое значение (из области значений). Причем функция может и не быть эмерджентной: например, проецировать одну функцию в другую (которые в свою очередь тоже что-то проецируют).


25 авг 2012, 08:46
Профиль
Аватар пользователя

Зарегистрирован: 15 янв 2010, 09:45
Сообщений: 406
Сообщение Re: Логика и математика
Вот как мы с Aetetom - одновременно ответили в функционально-параллельном режиме.


25 авг 2012, 08:48
Профиль
Аватар пользователя

Зарегистрирован: 15 янв 2010, 09:45
Сообщений: 406
Сообщение Re: Логика и математика
Aetet писал(а):
Мы видим, что действия "наколоть дров" и "принести воды" не зависят друг друга и являются первичными, следовательно мы можем их выполнять раньше, при этом не имеет значения, какое действие из этих двух завершим раньше. Поэтому мы можем выполнять эти действия параллельно. Т.е. один человек колет дрова, а другой таскает воду. Соответственно, выполнение дальнейших операций будет возможно, когда будут выполнены эти два действия.

Теперь можно приступать к следующей фазе: "затопить баню", "сварить кашу". Эти действия также не зависят друг от друга поэтому их также можно выполнять параллельно двумя людьми.


Несвязанные задачи легко распараллелить и алгоритмически. Весь фокус ФП в параллельной обработке связанных задач!


25 авг 2012, 08:51
Профиль
Аватар пользователя

Зарегистрирован: 15 янв 2010, 15:03
Сообщений: 1040
Сообщение Re: Логика и математика
bozhday писал(а):
Нет, это скорее общее свойство систем, а не функций - свойство эмерджентности.

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


Даже в этом случае дублю у магазина придется ждать информации из дома, а не непосредственно из сознания потенциальных гостей, что и позволило бы говорить о реальной системе систем.


25 авг 2012, 19:49
Профиль
Аватар пользователя

Зарегистрирован: 15 янв 2010, 09:45
Сообщений: 406
Сообщение Re: Логика и математика
Страж писал(а):
Для нас общим определением системы было, что это совокупность множества элементов, взаимосвязей между ними и новое качество, порождаемое самой системой.

И еще целенаправленность.


26 авг 2012, 04:35
Профиль
Аватар пользователя

Зарегистрирован: 15 янв 2010, 12:38
Сообщений: 1464
Сообщение Re: Логика и математика
Здравствуйте, Сварожичи!

Бождай, вот этот фокус параллельной обработки связанных задач, время от времени появляется в сознании и беспокоит его. Опять-таки, понятно, что я могу рассматривать этот вопрос как дилетант. Во всяком случае, я не могу себя заставить углубиться в изучение лямбда-счисления, и понять досконально, как работает "облако функций". Но именно попытка разобраться в данной теме с дилетантских позиций приводит к странным выводам. Суть этих выводов сводится к тому, что на данном этапе развития вычислительной техники, облако функций не будет работать. То есть, работать оно будет, но ускорение быстродействия вычислительных систем (компьютеров) произойдёт не взрывное, не на порядки, а не более чем в разы.

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

Помню только об одном этапе рассуждений, когда я вспомнил об несложной логической задаче о трёх мудрецах и пяти колпаках (двух чёрных и трёх белых). Там задача состояла в том, чтобы определить, какой колпак находится на тебе самом. И эта задача решается только в том случае, если заведомо предположить, что двое других людей также решают эту задачу. Решают - и не могут решить. И что эти люди как минимум - не глупы. То есть, если бы был один мудрец и пять колпаков, или два мудреца и пять колпаков, а вместо недостающих мудрецов были бы просто чурбаны с надетыми колпаками - то задача не решается в принципе.

Скорее всего, для решения данной задачи можно создать алгоритм машинного решения. Как дилетант - не представляю, как это сделать, но предположим, что можно. Но ведь эту задачу можно и должно усложнить. И единственный принцип решения подобной задачи - существование нескольких субъектов, именно субъектов, делателей, решающих одну и ту же задачу.

А ведь после некоторого этапа сложности, параллельное решение связанных задач утыкается именно в этот предел.

Но это только один из затыков, который я сейчас помню.

Заранее прошу прощения за этот выплеск рассуждений, так как для меня (как для дилетанта) он не предполагает какого-то серьёзного дальнейшего развития - но, может быть, тебе он в дальнейшем пригодится.


20 ноя 2012, 18:16
Профиль
Аватар пользователя

Зарегистрирован: 15 янв 2010, 09:45
Сообщений: 406
Сообщение Re: Логика и математика
Коловрат, к сожалению в ближайшую неделю-две я не смогу присутствовать за компьютером вдумчиво. Постараюсь ответить попозже.


21 ноя 2012, 16:44
Профиль

Зарегистрирован: 22 апр 2011, 12:25
Сообщений: 85
Сообщение Re: Логика и математика
Сейчас компьютеры делают очередные шаги в своем развитии. Они становятся социальными. Облако функций помогает им наладить разговор друг с другом и сообщать необходимую информацию для анализа. Таким образом они смогут делиться информацией с другими компьютерами, а это позволит запускать большее количество потоков обработки информации. Весь вопрос в том, чтобы качественно реализовать данный подход. Функциональное программирование задает частично направление движения.

Существует большое количество компаний, которые обслуживают гигантское количество данных в секунду: Гугл, Фейсбук, Твиттер, Амазон, ВКонтакте. В первую очередь справляться с большим потоком данных им позволяет большое количество компьютеров, которые связаны друг с другом в единую сеть. Внутри этой сети каждый из них получает свое задание и выполняет его, затем когда это задание будет выполнено наступает фаза сборки результатов всех компьютеров в единый результат, который как раз интересует пользователя. Чем большее количество данных нам поступает, тем тщательнее мы должны анализировать зависимости между ними, чтобы суметь распараллелить их и таким образом увеличить скорость вычисления.


03 дек 2012, 04:06
Профиль
Аватар пользователя

Зарегистрирован: 15 янв 2010, 12:38
Сообщений: 1464
Сообщение Re: Логика и математика
Здравствуйте, Сварожичи!

Продолжу тему параллельных вычислений. Очевидно, что тема сложна для рассмотрения. Сложна прежде всего тем, что представляет собою (впрочем, как и любая другая НАСТОЯЩАЯ тема) некое "светящееся яйцо" :) сотканное из переплетающихся нитей. И ухватить сути (нити) этой темы можно только выхватив пучок нитей из яйца. Иначе просто не будет слов, чтобы сказать об этом, не будет мыслей, чтобы раскрыть тему. Именно на это уходит основная энергия человека при рассмотрении темы. Когда светящиеся нити "в руках" - уже проще.

Здесь я приведу несколько пространных цитат из статьи С.М. Комарова "Считанные кванты" (Химия и жизнь № 11, 2012 г.). Статья посвящена нобелевским лауреатам по физике этого года. Итак:

Цитата:
Считается, что квантовые компьютеры позволят резко увеличить скорость вычислений за счёт параллельного выполнения многих операций на одном и том же процессоре. Например, если на классическом компьютере взлом ключа к современному шифру требует необозримого количества времени, то на квантовом он при использовании алгоритма Шора займёт столько же, сколько и само шифрование, которое состоит в перемножении двух очень больших чисел. Правда, подобное ускорение будет наблюдаться отнюдь не для всех вычислений, поэтому, видимо, такой компьютер, даже когда будет создан, не заменит привычные нам кремниевые, но займёт какую-нибудь особую нишу, где нужна параллельная обработка информации. Поскольку именно так работает мозг человека, не исключено, что "позитронные" мозги, которые Айзек Азимов вставил придуманным им роботам, будут созданы именно на этом, квантовом принципе.

Цитата:
Особенность квантового компьютера, которая и позволяет надеяться на проведение параллельных вычислений, состоит в том, что в квантовой механике появляются принципиально отсутствующие в макромире понятия суперпозиции состояний и их запутывания. Квантовая система, в отличие от классической, может принимать не любой набор состояний, а дискретный, у котором отдельные состояния различаются значениями энергии. Переход между ними возможен при получении или излучении кванта энергии, равного разности между их уровнями. В промежутке же система находится не может, однако она способна с некоей вероятностью одновременно пребывать во всех возможных состояниях. Это называется суперпозицией состояний. Лишь при измерении классическим прибором система выбирает определённое состояние. Понять это, как в известном анекдоте, невозможно - требуется запомнить: знаменитый спор между Бором и Эйнштейном к согласию не привёл.

Цитата:
Более того, в определённых условиях состояния нескольких квантовых объектов могут запутаться и оказаться взаимозависимыми. Такая зависимость сохраняется даже при разнесении объектов на большие расстояния, однако разрушается с течением времени: это явление лежит в основе квантовой телепортации (мгновенной передачи информации об измерении состояния с одной частицы на другую), однако может быть использовано и в квантовых вычислениях. Проверить эту идею удастся после создания достаточно больших квантовых компьютеров и разработки соответствующих алгоритмов.

Цитата:
Создать квантовый компьютер в принципе можно из любой системы, подчиняющейся законам квантовой механики, такие попытки предпринимались. Компьютеры собирали и на квантовых точках, и на спинах электронов или атомов, и на сверхпроводниках. Однако дальше разложения числа 15 на два сомножителя дело, насколько известно автору, не продвинулось.

Резюме:
1. Сама идея параллельных вычислений возможна только в системах, подчиняющихся законам квантовой механики.
2. Одной из таких систем является человеческий мозг.
3. В настоящее время имеются алгоритмы, позволяющие проводить параллельные вычисления, но отсутствует носитель ( железо) на котором эти вычисления можно проводить.
4. В создании квантовых компьютеров на данный момент предприняты самые первые (и очень робкие) шаги, которые пока не имеют какого-либо (даже отдалённого) практического применения.

Далее в статье описываются несколько тем, несколько серий опытов. Одна из серий проведена Гансом Демельтом - по поводу чего ещё одна очень интересная цитата:
Цитата:
Демельт сумел измерить гиромагнитное отношение - характеристику магнитного момента элементарной частицы. В соответствии с уравнением, предложенным Паули, и идеей, что электрон - точечная частица, не имеющая размера, этот момент должен быть равен 2. Измерения дают 2,002, однако это различие связывают с действием законов квантовой электродинамики, а не с проявлением внутренней сущности электрона. Демельт, измеривший момент очень точно, обнаружил после удаления всех возможных добавок, что тот равен 2,000000000098. Но даже столь малое различие позволяет усомниться в основах всей физики элементарных частиц. В самом деле, если это измерение верно, электрон - не точечная частица, а шар с радиусом 10 в минус 20 степени см. В 1995 году опыты на ускорителях давали оценку размера электрона - не более 10 в минус 17 степени см, то есть проверить Демельта было нельзя. Не исключено, что опыты на Большом адронном коллайдере помогут решить этот вопрос. И если размер у электрона действительно есть, то он и в самом деле окажется, согласно афоризму Ленина, "столь же неисчерпаемым, как атом" - состоящим из мелких частиц наподобие кварков с массой примерно 10 миллиардов масс электрона. Сейчас считается, что электрон един и неделим. По мнению Демельта, обнаружение делимости электрона породит мысль о полностью иерархическом строении всего сущего: оно будет состоять из всё более мелких и более тяжёлых частиц вплоть до самого нижнего уровня. На этом уровне расположен так называемый космон весом во Вселенную. Есть мнение, что космон и антикосмон, совершив однажды спонтанный квантовый перескок, и породили её.


11 дек 2012, 14:27
Профиль
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 62 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7  След.


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 139


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти: