|
|
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
Если представить любую программу как граф пройденных состояний, то выяснится что 90% программа проходит по одним и тем же вершинам, получает одни и теже данные в каждом промежуточном узле. А что если снять данные в каждом узле вход/выход, детерменировать связи между функциями и не вызывать повторно на вычисление функции для которых заведомо известны результаты ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 15:32:54 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
вот открыл я опять вот эту страницу, а компьютер опять молотит один и тот-же html, тянет сначала его по сети и получает одни и теже данные. Хорошо что страница открывается довольно быстро, но реально открываться должна вообще моментально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 15:43:24 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
301вот открыл я опять вот эту страницу, а компьютер опять молотит один и тот-же html, тянет сначала его по сети и получает одни и теже данные. Хорошо что страница открывается довольно быстро, но реально открываться должна вообще моментально Чтобы она открывалась моментально, компьютер должен проанализировать все входящие в алгоритм её открытия шаги и доказать, что они все детерминированны. То что два раза подряд он проделал одинаковую работу при открытии этой страницы не означает, что всегда он будет проделывать одинаковую работу. Далее результаты такого анализа должны быть сохранены. Таким образом мы упираемся в 2 более страшные проблемы, нежели "второй раз обработать загрузку страницы". Компьютеру придется анализировать даже то, что мы, возможно, никогда в будущем повторно использовать не будем. И эти "анализы" придется сохранять - терабайтных винчестеров и гигагерцовых процессоров работать с этими массивами "анализов" быстро станет не хватать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 15:47:47 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
"зачем канализационные трубы делают такими толстыми? что бы они выдержали короткий пик нагрузок." (с) количество состояний при той де загрузке страницы неимоверно велико что бы использоваь предыдущий опыт 4 8 15 16 23 42 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 15:57:29 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
301Если представить любую программу как граф пройденных состояний, то выяснится что 90% программа проходит по одним и тем же вершинам, получает одни и теже данные в каждом промежуточном узле. А что если снять данные в каждом узле вход/выход, детерменировать связи между функциями и не вызывать повторно на вычисление функции для которых заведомо известны результаты ? Почитайте про функциональное программирование и кеширование вызовов функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 16:01:27 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
an0nym Чтобы она открывалась моментально, компьютер должен проанализировать все входящие в алгоритм её открытия шаги и доказать, что они все детерминированны. Доказать это можно построив дерево связей. an0nym То что два раза подряд он проделал одинаковую работу при открытии этой страницы не означает, что всегда он будет проделывать одинаковую работу. Согласен. Но в 90% случаев достаточно сделать небольшое сравнение закешированных входящих данных чтобы "отрезать" огромную ветку. an0nym Таким образом мы упираемся в 2 более страшные проблемы, нежели "второй раз обработать загрузку страницы". Компьютеру придется анализировать даже то, что мы, возможно, никогда в будущем повторно использовать не будем. И эти "анализы" придется сохранять - терабайтных винчестеров и гигагерцовых процессоров работать с этими массивами "анализов" быстро станет не хватать. Терабайтов информации нет. Есть приложение, которое состоит обычно из 1-2 тыс. функций. Они образовуют огромных граф вызовов с вложенностью около 10. Целую огромную подветку можно отсечь в самом начале если закешировать вход/выход хотябы функций первых трех вложенностей. Следвательно терабайтные данные могут свестись к табличке примерно на 2 тыс функции и типичных пару десятков вызовов для них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 16:46:56 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
zloy den301Если представить любую программу как граф пройденных состояний, то выяснится что 90% программа проходит по одним и тем же вершинам, получает одни и теже данные в каждом промежуточном узле. А что если снять данные в каждом узле вход/выход, детерменировать связи между функциями и не вызывать повторно на вычисление функции для которых заведомо известны результаты ? Почитайте про функциональное программирование и кеширование вызовов функций. Меня пока что интересует процедурное программирование и методы "над" оптимизаций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 16:48:57 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
301 Меня пока что интересует процедурное программирование и методы "над" оптимизаций. С учетом того, что это машина состояний, то очень трудно хранить и кешировать вызовы каких-либо методов, т.к. они могут зависеть не только от параметров, но и от внутреннего состояния объектов или каких-то переменных. В функциональных языках (или хотя бы в программах, лишенных побочных эффектов) наиболее часто используемые функции можно кешировать без боязни что что-то будет упущено-такие функции всегда возвращают один и тот же результат для одинаковых параметров. А как красиво сделать такое в программах, у методов которых есть побочные эффекты, я даже не представляю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 17:56:05 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
zloy den301 Меня пока что интересует процедурное программирование и методы "над" оптимизаций. С учетом того, что это машина состояний, то очень трудно хранить и кешировать вызовы каких-либо методов, т.к. они могут зависеть не только от параметров, но и от внутреннего состояния объектов или каких-то переменных. В функциональных языках (или хотя бы в программах, лишенных побочных эффектов) наиболее часто используемые функции можно кешировать без боязни что что-то будет упущено-такие функции всегда возвращают один и тот же результат для одинаковых параметров. А как красиво сделать такое в программах, у методов которых есть побочные эффекты, я даже не представляю. Можно распарсить тело метода и определить список переменных которые он может менять. Локальные и глобальные. Локальные переменные нас не интересуют. Глобальные переменные указывают связи между методами. Остается единственная проблема с внешними источниками данных. Таких как файловая система или база данных. Проблема появляется только для незамкнутой системы ( не идеальной ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 18:23:53 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
это называется мемоизация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 22:15:34 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
beluginэто называется мемоизация спасибо за инфу. Речь именно о ней. Вот листаю гугл, но пока не могу найти пристойных примеров поддерживающих это "аппаратно", на уровне ОС или хотябы на уровне Виртуальной машины. В основном речь идет о Сustom мемоизации на этапе разработки, что не позволяет автоматически ускорить работу уже созданного кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 23:56:14 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
sqI, для этого надо, чтобы код был функционально чист ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 06:48:04 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
beluginsqI, для этого надо, чтобы код был функционально чист не обязательно. Достаточно построить дерево связей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 11:51:52 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
Для этого пришла мысль смотреть на алгоритм не как рукописную структуру, а с точки зрения рантайм прохождения данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2009, 11:52:33 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
301... 90% программа проходит по одним и тем же вершинам... "Чушь какая-то..." Если вы строите конечный автомат – знаете все возможные комбинации параметров на входе и значений на выходе, тогда, казалось бы, куда проще создать карту соответствия. Однако размер такой карты соответствия, для, казалось бы, простого приложения может и будет занимать непозволительно много места (тривиальный пример – решение шахматной задачи). И, если учесть то, что современный компьютер под управлением современной операционной системы – это не одно приложение, а группа программ, которые "как-то" пытаются сосуществовать и делить ограниченные ресурсы (этого самого компьютера), то задача по определению такой карты соответствия для целого компьютера представляется не разрешимой... Есть еще одно "но", как может показаться начинающему программисту: почему программы выполняют не оптимизированный код. Это происходит потому, что опытные программисты предпочитают использовать код повторно, и пусть этот код написан другими программистами, - главное, что он рабочий. "Если работает – лучше не трогать..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 10:12:47 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
ALKIR301... 90% программа проходит по одним и тем же вершинам... "Чушь какая-то..." Если вы строите конечный автомат – знаете все возможные комбинации параметров на входе и значений на выходе, тогда, казалось бы, куда проще создать карту соответствия. Однако размер такой карты соответствия, для, казалось бы, простого приложения может и будет занимать непозволительно много места (тривиальный пример – решение шахматной задачи). И, если учесть то, что современный компьютер под управлением современной операционной системы – это не одно приложение, а группа программ, которые "как-то" пытаются сосуществовать и делить ограниченные ресурсы (этого самого компьютера), то задача по определению такой карты соответствия для целого компьютера представляется не разрешимой... Есть еще одно "но", как может показаться начинающему программисту: почему программы выполняют не оптимизированный код. Это происходит потому, что опытные программисты предпочитают использовать код повторно, и пусть этот код написан другими программистами, - главное, что он рабочий. "Если работает – лучше не трогать..." +1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 11:06:01 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
ALKIR "Чушь какая-то..." Если вы строите конечный автомат – знаете все возможные комбинации параметров на входе и значений на выходе, тогда, казалось бы, куда проще создать карту соответствия. Однако размер такой карты соответствия, для, казалось бы, простого приложения может и будет занимать непозволительно много места (тривиальный пример – решение шахматной задачи). Это Вы так думаете, или экспериментально ? Просто у меня уже есть кое-какие экспериментальные данные на графах около 100 000 вызовов функций в приложении. И все выглядит довольно оптимистично. В 30-40% процентов статистических данных функции вызываются повторно с одинаковыми параметрами из-за не идеальности кода. Но это если мыслить в одном измерении, единожды выполненной программы. Но на практике программа запускается многократно, как и сервер выдает одни и теже порции данных, следовательно кеш на уровне многократных запусков программы, броузера, может довести эту цифру до 90% ( пока что я так думаю ) К теме о Шахматах, алгоритм Альфа Бета тем и отличается от Мини Макс что заведомо отсекает ветки с известным результатом. А вот современный комп. не отсекает ... и притармаживает, молотит сто раз одно и тоже. ALKIR И, если учесть то, что современный компьютер под управлением современной операционной системы – это не одно приложение, а группа программ, которые "как-то" пытаются сосуществовать и делить ограниченные ресурсы (этого самого компьютера), то задача по определению такой карты соответствия для целого компьютера представляется не разрешимой... Пока речь идет о виртуальной машине, которая к программе добавит еще одно измерение. History выполнения. Что позволит повторно запустить программу в десятки раз быстрее. На компьютере делается все повторно, повторно открывается студия, повторно открывается броузер, повторно разбирается одно и тоже дерево ,повторно открывается сайт и т.д. ALKIR Есть еще одно "но", как может показаться начинающему программисту: почему программы выполняют не оптимизированный код. Это происходит потому, что опытные программисты предпочитают использовать код повторно, и пусть этот код написан другими программистами, - главное, что он рабочий. "Если работает – лучше не трогать..." В том то и дело, что код повторный. Если бы нельзя было построить древовидный рантайм граф из нескольких тысяч функций, идея была заведомо нереализуема. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 13:00:18 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
Хм, как вы собираетесь отлавливать нечто такого типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Я вижу 2 варианта: 1. Видим что есть нечто непонятное (GetDate()) и отказываемся оптимизировать 2. Видим что есть что-то непонятно(например, вызов другой функции), анализируем ту функцию и проверяем, можем ли запомнить ее. Если можем, то тут тоже можем запомнить. Если же не можем, то обламываемся с мемоизацией всех вызывающих функций, что может привести к довольно печальному результату в виде минимальной эффективности. 3. Ваш вариант? Кстати, еще вопрос-как собираетесь кешировать вызовы функций к внешним хранилищам (СУБД например). Можно ли запоминать вызов загрузки объекта в случае ORM или нельзя? Или может как-то следить, за тем что объект изменился? Но как тогда вписать все это в единый алгоритм? Короче, как вы собираетесь мемоизировать функции, которые имеют побочные эффекты и по сути не могут быть просто сведены к функциональному стилю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 13:23:02 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
Кстати, императивные программы в большинстве своем вполне (имхо, достаточно реально, если не считать окружающую среду) приводятся к функциональному стилю, думаю можно было бы автоматизировать данный процесс. А еще добавить к полученному функциональному коду профайлер и мемоизировать только те функции, которые действительно в этом нуждаются. А если запихнуть этот код в саму программу, то можно получить автоматически улучшающую свое быстродействие программу (правда остается вопрос-насколько улучшающую?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 13:28:29 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
zloy denХм, как вы собираетесь отлавливать нечто такого типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 3. Ваш вариант? Вот по этому я предлагаю плясать не от структуры ( она обманчива ) а от собственно данных которые проходят через эту структуру. Например если набить статистику по этой функции то выяснится что меняется только один параметр для нее. Но в целом конечно нужно думать. zloy den Кстати, еще вопрос-как собираетесь кешировать вызовы функций к внешним хранилищам (СУБД например). Можно ли запоминать вызов загрузки объекта в случае ORM или нельзя? Или может как-то следить, за тем что объект изменился? Но как тогда вписать все это в единый алгоритм? Короче, как вы собираетесь мемоизировать функции, которые имеют побочные эффекты и по сути не могут быть просто сведены к функциональному стилю? Или отключить или можно организовать общение с внешними хранилищами подняв снова граф зависимостей или использовав контрольные суммы или последнюю дату с которой данные изменились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 13:49:14 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
sqIВот по этому я предлагаю плясать не от структуры ( она обманчива ) а от собственно данных которые проходят через эту структуру. Например если набить статистику по этой функции то выяснится что меняется только один параметр для нее. Но в целом конечно нужно думать. Или отключить или можно организовать общение с внешними хранилищами подняв снова граф зависимостей или использовав контрольные суммы или последнюю дату с которой данные изменились. Да не получится. Анализировать только данные на вход и на выход вообще глупость - может функция недетерменированная, но всегда принимает данные и в тех 100 вызовах, которые вы проанализировали, выдавала одинаковые данные, а на 101 выдаст совершенно другие. Можно или просто - анализировать структуру и иметь эффективность не более 10-20%. Или сложно - анализировать структуру, данные входные, выходные, анализировать изменение какого параметра как на что влияет - иметь эффективность 90% и или жутко дорогостоящее петабайтное хранилище, куда будут записываться результаты этих анализов и из которого можно быстро получить результаты (скажем 0.00000000000001% данных хранилища) или тратить эти высвобожденные 90% на анализ и через 5 секунд "забывать" результаты этих анализов. Золотую середину уже нашли - она называется многоуровневый кэш процессора + оперативная память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 17:29:50 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
an0nym Да не получится. Для начала будем говорить о теоретической возможности. an0nym Анализировать только данные на вход и на выход вообще глупость - может функция недетерменированная, но всегда принимает данные и в тех 100 вызовах, которые вы проанализировали, выдавала одинаковые данные, а на 101 выдаст совершенно другие. Функция не черный ящик. У нее есть весьма определенные зависимости от других данных. an0nym Можно или просто - анализировать структуру и иметь эффективность не более 10-20%. При открытии одно и тогоже сайта можно получить эффективность и в 99%. Я могу заверить что граф вызовов функций будет соответстовать на 100% an0nym Или сложно - анализировать структуру, данные входные, выходные, анализировать изменение какого параметра как на что влияет - иметь эффективность 90% и или жутко дорогостоящее петабайтное хранилище Забудьте про петабайты. Их попросту нет. an0nym Куда будут записываться результаты этих анализов и из которого можно быстро получить результаты (скажем 0.00000000000001% данных хранилища) или тратить эти высвобожденные 90% на анализ и через 5 секунд "забывать" результаты этих анализов. Это говорим о реализации, пока что еще рано. an0nym Золотую середину уже нашли - она называется многоуровневый кэш процессора + оперативная память. Это аппаратное ускорение. Я же предлогаю программное. Разницу наверно обьяснять не нужно в эффективности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 18:12:07 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
Не хотите проанализировать? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 18:43:09 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
DocAlНе хотите проанализировать? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. А что тут сложного. Строишь таблицу зависимостей. Код: plaintext У тебя тут нет глобальных переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 19:26:28 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
Угу, закэшируйте, пожалуйста, множество Мандельброта... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 19:33:59 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
sqIDocAlНе хотите проанализировать? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. А что тут сложного. Строишь таблицу зависимостей. Код: plaintext У тебя тут нет глобальных переменных. И получаем таблицу размером 3.66e106 байт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 19:34:06 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
an0nymsqIDocAlНе хотите проанализировать? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. А что тут сложного. Строишь таблицу зависимостей. Код: plaintext У тебя тут нет глобальных переменных. И получаем таблицу размером 3.66e106 байт. Ответ не правильный. Во-первых экспериментально его функция может оказаться вызываться всего с сотней аргументов из разных мест. Ведь ее не вызывали 3.66e106/4 раз. Во-вторых имея зависимости возможно нам эта таблица не нужна будет и мы до нее не дойдем. Поскольку ветка может быть пресечена еще на уровне выше. Если будут отрезолвены зависимости парентовых функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 19:40:26 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
sqI, а ничего, что вместо нескольких умножений, сложений и присвоений, произойдет намного более сложная работа, которая может даже никогда больше в жизни не понадобиться? Лично я не готов ни гонять свой процессор ради такой работы, ни тратить дисковое пространство, чтобы кто-то заранее посчитал, а я вместо 100 Мб качал бы целый Гб... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 20:54:17 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
Имхо, данный топик полон бреда. Есть и более прогрессивные методы. Тут все думают локально, а жаль ---------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 20:56:51 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
an0nymsqI, а ничего, что вместо нескольких умножений, сложений и присвоений, произойдет намного более сложная работа, которая может даже никогда больше в жизни не понадобиться? Если приложение открывается и реагирует на твое действие <1 сек, хорошо спроектировано, то наверное так и есть. Смысла оптимизировать и кешировать результаты работы функций которые проще пересчитать чем закешировать. В остальных случаях есть смысл кешировать, чтобы подвисающее приложение снова ускорить в <1 сек. an0nym Лично я не готов ни гонять свой процессор ради такой работы, ни тратить дисковое пространство, чтобы кто-то заранее посчитал, а я вместо 100 Мб качал бы целый Гб... А мне лично не жалко оперативной памяти. Лижбы приложение ускорилось в работе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 21:51:53 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬ Есть и более прогрессивные методы. Тут все думают локально, а жаль Например ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2009, 21:52:35 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
Выделю даже, надеюсь догадаешься: sqIС0ВЕСТЬ Есть и более прогрессивные методы. Тут все думают локально , а жаль Например ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 12:00:44 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬВыделю даже, надеюсь догадаешься: sqIС0ВЕСТЬ Есть и более прогрессивные методы. Тут все думают локально , а жаль Например ? Предлагаете менять железо и операционку? Вообще весь стиль программирования? Еще что-то? Мне тоже интересны глобальные идеи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 12:04:31 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
zloy denС0ВЕСТЬВыделю даже, надеюсь догадаешься: sqIС0ВЕСТЬ Есть и более прогрессивные методы. Тут все думают локально , а жаль Например ? Предлагаете менять железо и операционку? Вообще весь стиль программирования? Еще что-то? Мне тоже интересны глобальные идеи зачем что-то менять, если на этом пути многие корпорации сделали уже делают успешные начальные шаги. Вычисления в облаке слыхали? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 12:30:40 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
zloy denС0ВЕСТЬВыделю даже, надеюсь догадаешься: sqIС0ВЕСТЬ Есть и более прогрессивные методы. Тут все думают локально , а жаль Например ? Предлагаете менять железо и операционку? Вообще весь стиль программирования? Еще что-то? Мне тоже интересны глобальные идеи Пока я предлагаю провести еще ряд экспериментов в песочнице, выслушать еще идеи и понять, стоит ли игра свечь. В теории пока видится все довольно просто, на практике пока нужно пробовать. Песочницей для анализа и построения графа для взрослого приложения служит пока что вот эта вещь которая умеет эмулировать работу приложения, отслеживать и сохранять всю историю вызовов функций и их параметров. На этой неделе я выложу дистрибутив, когда приведу его в порядок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 13:18:32 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬzloy denС0ВЕСТЬВыделю даже, надеюсь догадаешься: sqIС0ВЕСТЬ Есть и более прогрессивные методы. Тут все думают локально , а жаль Например ? Предлагаете менять железо и операционку? Вообще весь стиль программирования? Еще что-то? Мне тоже интересны глобальные идеи зачем что-то менять, если на этом пути многие корпорации сделали уже делают успешные начальные шаги. Вычисления в облаке слыхали? :) слыхал, у Дидми ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 13:19:04 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
sqIслыхал, у Дидми Краткое описание Кстати, крупные корпорации этим занимаются давно уже. Microsoft, SUN, Oracle... Но, до ума не доведена, пока что... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 13:32:05 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬsqIслыхал, у Дидми Краткое описание Кстати, крупные корпорации этим занимаются давно уже. Microsoft, SUN, Oracle... Но, до ума не доведена, пока что... Ты хоть знаешь какие задачи попадают хорошо под распаралеливание, а какие нет. В чем отличие алгоритмов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 13:36:02 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
sqIС0ВЕСТЬsqIслыхал, у Дидми Краткое описание Кстати, крупные корпорации этим занимаются давно уже. Microsoft, SUN, Oracle... Но, до ума не доведена, пока что... Ты хоть знаешь какие задачи попадают хорошо под распаралеливание, а какие нет. В чем отличие алгоритмов ? Написал ведь, до ума не доведено! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 14:02:03 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬ Написал ведь, до ума не доведено! До ума не доведено, простите, что ? Математическую подоплеку этой кухни хоть знаешь ? Или не знаешь. Просто ответ мне: Да/Нет. Эта задача математически просто не решается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 14:11:34 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
sqIС0ВЕСТЬ Написал ведь, до ума не доведено! До ума не доведено, простите, что ? Математическую подоплеку этой кухни хоть знаешь ? Или не знаешь. Просто ответ мне: Да/Нет. Эта задача математически просто не решается. Честно говоря, меня технические тонкости не особо интересны. Меня больше волнует, как это можно довести до ума и делать бабло! Простой пример: рендеринг видео из терабайтов данных несложными действиями, производительность - очень большая. Как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 14:17:09 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬрендеринг видео из терабайтов данных несложными действиями, производительность - очень большая. Как-то так. Купи себе хороший сервер и рендерь на здоровье. Я же буду окучивать поле миллионов десктопов не мощнее 2ГГЦ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 14:19:18 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
sqIС0ВЕСТЬрендеринг видео из терабайтов данных несложными действиями, производительность - очень большая. Как-то так. Купи себе хороший сервер и рендерь на здоровье. Я же буду окучивать поле миллионов десктопов не мощнее 2ГГЦ. С тобой все понятно. Вижу никогда в Максе не рендерил картинку хорошего качества скажем через Бразил или Врэй. А когда этот рендеринг подключаешь через встроенную тулзу, которая работает в локалке, время рендеринга сокращается налицо! Картинка ранее рендерившая более 8-ми часов в локалке из 10 компов раздается по пару минут на каждый, есть разница? visit me ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 14:41:46 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬ Вычисления в облаке слыхали? :) Имхо, это ортогональные действия-кеширование повторяющихся действий и распараллеливание вычислений. Т.е. по сути ускорение программ на имеющемся железе и увеличение мощности железа при примерно тех же алгоритмах. Так что не впечатлен идеей, глобальности ровно столько же. Кстати, идеям кластеров уже черт знает сколько времени , так что ничего нового я тут не вижу. А проблемы по прежнему есть, и не факт что их решат (хотя бы потому, что времени прошло уже много, а пока ничего). Думаю, реализуемость обоих подходов будет ограничена. А заодно, их можно комбинировать, что даст больше плюшек, чем применение любого из них ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 14:50:56 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬsqIС0ВЕСТЬрендеринг видео из терабайтов данных несложными действиями, производительность - очень большая. Как-то так. Купи себе хороший сервер и рендерь на здоровье. Я же буду окучивать поле миллионов десктопов не мощнее 2ГГЦ. С тобой все понятно. Вижу никогда в Максе не рендерил картинку хорошего качества скажем через Бразил или Врэй. А когда этот рендеринг подключаешь через встроенную тулзу, которая работает в локалке, время рендеринга сокращается налицо! Картинка ранее рендерившая более 8-ми часов в локалке из 10 компов раздается по пару минут на каждый, есть разница? visit me Значит твоя задача хорошо поддается распараллеливанию. И если у тебя есть 10 лишних компьютеров в локалке то можно попытаться от этого плясать. Взять, так сказать, хардвером. Но смею тебя заверить, множество задач которые хорошо расспаралеливаются является только подмножеством задач которые распараллеливать или нельзя или не эффективно. Примеры: fx = a(b(c(x))) fx = a(x)+b(x)+c(x) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 14:51:20 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
zloy denС0ВЕСТЬ Вычисления в облаке слыхали? :) Имхо, это ортогональные действия-кеширование повторяющихся действий и распараллеливание вычислений. Т.е. по сути ускорение программ на имеющемся железе и увеличение мощности железа при примерно тех же алгоритмах. Так что не впечатлен идеей, глобальности ровно столько же. Кстати, идеям кластеров уже черт знает сколько времени , так что ничего нового я тут не вижу. А проблемы по прежнему есть, и не факт что их решат (хотя бы потому, что времени прошло уже много, а пока ничего). Думаю, реализуемость обоих подходов будет ограничена. А заодно, их можно комбинировать, что даст больше плюшек, чем применение любого из них !!! Распределённые вычисления != Кластерам Разница между ними очень тонкая. Распределённые вычисления можно производить в Глобальной Сети, тогда как кластеры должны быть связаны в локалку. http://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D1%91%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B2%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8FОбщая схема участия в том или ином проекте распределённых вычислений выглядит так: потенциальный участник скачивает клиентскую часть программного обеспечения под свою операционную систему, настраивает и запускает её. Клиент периодически общается с сервером проекта — запрашивает у него данные на обработку и отсылает результаты. При этом клиент выполняется с наименьшим приоритетом (приоритетом простоя (англ.)) и не мешает основной работе. Многие наверное устанавливая драйвер ATI не раз интересовались дополнительной галочкой: http://ru.wikipedia.org/wiki/Folding@Home]Folding@Home . Вычисления переносятся уже на GPU в период его незагруженности. Мощь GPU в последнее время давно опередила сами CPU. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 15:02:27 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬ Мощь GPU в последнее время давно опередила сами CPU. Ладно, отклонюсь от основной темы. Конечно здесь идет речь о совсем других видах оптимизаций. Но всеже. То что у тебя 8ми ядерный сервер, это еще не означает что он эффективно загрузит все 8 ядер даже при рендиринге видео. Есть аппаратное распаралеливание (на уровне конвеера процессора, на уровне блока предсказаний). Есть так называемое распаралеливание компилятором. Когда он может попытаться угадать, какие вычисления промежуточные, их можно считать на периферийных процессорах. Есть распаралеливание высокоуровневое. Собственно ты должен представлять что чем более высокий уровень тем проще отделить мух от котлет. Поэтому распаралеливание по сути тоже может требовать статистического анализа кода с сохранением и анализом массивов промежуточных переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 15:09:52 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
sqIС0ВЕСТЬ Мощь GPU в последнее время давно опередила сами CPU. Ладно, отклонюсь от основной темы. Конечно здесь идет речь о совсем других видах оптимизаций. Но всеже. То что у тебя 8ми ядерный сервер, это еще не означает что он эффективно загрузит все 8 ядер даже при рендиринге видео. Есть аппаратное распаралеливание (на уровне конвеера процессора, на уровне блока предсказаний). Есть так называемое распаралеливание компилятором. Когда он может попытаться угадать, какие вычисления промежуточные, их можно считать на периферийных процессорах. Есть распаралеливание высокоуровневое. Собственно ты должен представлять что чем более высокий уровень тем проще отделить мух от котлет. Поэтому распаралеливание по сути тоже может требовать статистического анализа кода с сохранением и анализом массивов промежуточных переменных. Меня не интересует сервер в 16 процессоров с 64 ядрами! Меня интересует, как можно взять программу(данные) и разослать по всему миру, результаты приходят мне в готовом виде и собираются воедино! авторДля выполнения вычислений Folding@home использует не суперкомпьютер, а вычислительную мощь сотен тысяч персональных компьютеров со всего мира. Для того, чтобы участвовать в проекте, человек должен загрузить небольшую программу-клиент. В среднем типичный современный компьютер загружен лишь на 5 %, и клиентская программа Folding@Home запускается в фоновом режиме и выполняет вычисления лишь в то время, когда ресурсы процессора не полностью используются другими приложениями. Программа-клиент Folding@home периодически подключается к серверу для получения очередной порции данных для вычислений. После завершения расчётов их результаты отсылаются обратно. Принцип работы р2р-сетей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 15:29:16 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬ Программа-клиент Folding@home периодически подключается к серверу для получения очередной порции данных для вычислений. После завершения расчётов их результаты отсылаются обратно. Принцип работы р2р-сетей Старый велосипедик для НАСА. Жаль что для 99% задач уровня десктоп "здесь и сейчас и без глюков" не подходит :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 15:48:04 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬ !!! Распределённые вычисления != Кластерам Разница между ними очень тонкая. Распределённые вычисления можно производить в Глобальной Сети, тогда как кластеры должны быть связаны в локалку. Хм, в интернете другой TCP/IP? Не, серьезно, чем отличается от машин кластера с клиентом общающимся через глобальную сеть? Т.е. если разница только между тем что локальная сеть и весь интернет, то это вообще не разница, кроме удобной и простой настройки клиентов (чтобы каждый без проблем и долгих настроек мог поставить себе клиент для этого "облака"). Или в том что P2P? Если так, то думаю кластера с такой системой тоже существуют (хотя не интересовался, так что утверждать не буду) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 16:00:05 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬ, 9 женщин не смогут родить одного младенца за один месяц, как никрути. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 16:02:46 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
Говорите невозможно? Хм... Все равно я это хочу сделать! И верю, что ничего невозможного нету. ---------------------- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 16:05:31 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
С0ВЕСТЬГоворите невозможно? Хм... Все равно я это хочу сделать! И верю, что ничего невозможного нету. ---------------------- Что именно ты хочешь сделать ? Что нового ты можешь сегодня добавить к своей любимой p2p программе ? Есть новые идеи ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 16:16:34 |
|
||
|
Почему компьютер выполняет 90% лишней работы ?
|
|||
|---|---|---|---|
|
#18+
sqIС0ВЕСТЬГоворите невозможно? Хм... Все равно я это хочу сделать! И верю, что ничего невозможного нету. ---------------------- Что именно ты хочешь сделать ? Что нового ты можешь сегодня добавить к своей любимой p2p программе ? Есть новые идеи ? А, хитрый какой, расскажи всю свою идею... не так дело не пойдет. Это моя идея и хочу реализовать, если получится клнечно. Только проблемка, тут нужны хорошие спецы. С чего конкретно начинать, пока тяжело примериться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2009, 17:06:38 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1344072]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
207ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 228ms |
| total: | 567ms |

| 0 / 0 |
