Re[20]: попробую изложить
От: samius Япония http://sams-tricks.blogspot.com
Дата: 10.12.10 20:11
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, samius, Вы писали:


PD>Хотел ответить тебе, а получилось, что всем. Пора заканчивать

+1

PD>Нано ?

Именно

PD>А если бы серьезнее дело обстояло ? Если все же программу надо сделать, а не другую работу искать ? Я не намерен обсуждать, как бы там ты объяснялся, это не важно. Но так или иначе — пришлось бы сказать четкое "нет". И никуда не денешься.


Когда тебе говорят что и каким образом делать (твоя задача с SuperTrueColor 33bit per channel) — приходится говорить "нет". Когда известно, какую проблему заказчика надо решить, как-правило есть место для маневра. Можно решить часть задачи или немножко другую задачу, повернув все немножко в другом ракурсе. Когда проблема заказчика решена, ему пофигу, каким образом решена задача.

PD>Конечно, 2^100 — случай крайний. Но чтобы понять, что на этот крайний случай нас нелегкая вынесла, надо все же задачу проанализировать. Для subset точного решения нет. А вдруг есть ? Упаси боже. я не собираюсь говорить, что NPполную можно где-то свести к полиному . Но, может, можно вообще от NP-полной отказаться. Может, и без нее решается ?

Может и решается

PD>А с другой строны, что мне за радость от задачи, где образуется тройной цикл по 500000 итерации в каждом ? Один черт за разумное время не сделаешь.

За минуту не сделать, а если заказчику очень надо, он может и годами ждать завершения счета не самого оптимального решения. И на бабло от пары таких задач может кормиться из года в год десятки лет полторы тысячи человек. Вот скажи, есть ли смысл решать задачу быстрее, если заказчик не может больше ни к кому обратитсья?

PD>Задачи, анализ которых (даже в уме, даже интуитивно) говорит о том, что ничего там критического нет.


PD>О, вот тут можно и не считать.


PD>Между этими двумя полюсами лежит область, где все гораздо серьезнее.

Где-то в начале топика я спросил, как можно рассуждать о сферической задаче? Вот теперь я понял.
Только по всему топику приводили куда больше классов задач, чем 3 твоих. Писали и о тех, где считать надо, и о тех, где не надо, и о тех где все легко прикидывается, и о тех, где захочешь — не посчитаешь.

И вот я пишу еще об одном примере, с которым я сталкивался. Задача писалась много лет назад и загружалась оверлейно с ленты, выгружая данные на ту же ленту. Прошли годы, задачу портировали на PC, и вместо того что бы пилить ленту она теперь пилит жесткий диск, пытаясь удержаться в рамках заложенных когда-то килобайт. Ускорение довольно существенное все-таки произошло, но и задачи "выросли". Производительности жестко не хватает. Казалось бы, памяти по тем понятиям — фантастический объем. Но менять что-либо в программе боятся, вдруг будет работать неверно. Ну и все. Программа пилит винт, зарплата идет. Все довольны.

PD>Так что оценку того же быстродействия программы делают — все

Сомнительный вывод. Я знаю таких, кто не делает, даже когда надо, и, казалось бы ничто не мешает, кроме отсутствия мотивации к оценкам.
Re[14]: попробую еще раз
От: Sinclair Россия https://github.com/evilguest/
Дата: 11.12.10 02:41
Оценка: 37 (2) +1
Здравствуйте, Pavel Dvorkin, Вы писали:


PD>И не надо. А вот то, что правильно (выделил сейчас выше), по моему мнению, ты, конечно, комментировать не стал, потому что оно тебя не устраивает. Можно ведь перевести разговор...

А зачем комментировать очевидное? Речь же не о том, чтобы предсказать характеристики системы для какого-то одного частного случая. Это как раз сделать проще, и никому не интересно.

PD>А ты не пиши глупостей. Напомню, для тех, кто это читает

S>> Ну давай, напиши мне формулу Менделеева-Клапейрона для дисков.
PD>Я поначалу хотел тебе более резко ответить, да не стал.
Хорошо, Павел. Вижу, ты только свои аналогии любишь — чужие тебе не нравятся. Я тебе расшифрую подробно, не переживай:
1. Ты умничал на тему того, что, дескать, для описания поведения газа не нужно моделировать отдельные молекулы.
2. Ок, да, для газа есть уравнение Менделеева-Клапейрона, которое оперирует макроскопическими параметрами.
3. Ты предлагаешь распространить подход на программирование. Хорошо, пусть тебе не надо моделировать поведение каждой отдельной операции чтения/записи.
4. Тогда, наверное, должна быть какая-то формула, аналогичная уравнению Менделеева-Клапейрона, которая свяжет макроскопические параметры нашего ввода-вывода.
Ну вот давай, напиши мне эту формулу, остряк академический.

PD>Чудненькая логика, ничего не скажешь. Мне, который с этими мейлбоксамии и дела не имел и про сервер этот ничего не знает, предлагается быстро эту формулу написать. На основании того, что я это не сделаю, делается вывод, что это невозможно. Прелесть, да и только. По-видимому, следующий вывод — поскольку я не в состоянии рассчитать траекторию космического корабля, рассчитать ее нельзя. Ну и ну...

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


PD>>Я тебе в другом месте вопрос задал насчет NP-полной задачи при N=1000. Ты не ответил, так что повторяю свой вопрос. Ты же не будешь ее решать ? Причем априорно откажешься, так ? А почему, собственно ? Надо сделать макет и замерить его поведение! Сделали, запустили, программа при N=1000 все никак закончиться не может. Пилим ее профайлером. Пилите, Шура, пилите

Ну ведь пилят, и таки распиливают?

PD>За что там люди берутся, это не так важно, и за что я могу взяться, тоже к делу не относится. Ты возьмешься ?. Ты же утверждаешь, что надо прототип написать, потом профайлером довести и т.д.

Конечно надо.

PD>Ну вот тебе задача по нахождению заданной суммы путем взятия элементов массива попарно различных чисел , когда каждое число можно брать 1 раз или не брать совсем. Надеюсь, ты не будешь прикидываться, что тебе эта задача неизвестна. Размер массива — 100, даже не 1000. Надо полагать, ты возьмешься за эту задачу ?

PD>Берешься ? Да или нет ? Не виляй!
Надо будет — возьмусь. Если не получится с точным решением, попробую прикрутить частичное. Запросто может оказаться, что для тех данных, которые будут скармливаться в задачу в реальности, всё будет совсем не так, как "в среднем". Есть масса примеров некорректных задач, которые таки решаются.

PD>То-то и оно. И ежу понятно, почему ты вместо того, чтобы ответить, начинаешь вилять да юлить. Потому что взяться за задачу 2^100 ты не можешь, само собой. А не можешь потому, что оценил время , необходимое для решения этой задачи, и понял, что это время хорошо превышает не только время твоей жизни, но как бы и не время существования солнечной системы.

PD>А сказать ты это не хочешь, так как понимаешь, что после такого признания все твои разглагольствования насчет невозможности оценки пойдут прахом, вместе с твоей демагогией.
Нет, Павел, не пойдут. Ещё раз объясняю, в последний раз, медленно: есть, грубо говоря, три класса ситуаций:
1. Характеристики будущей системы можно оценить сверху, и они заведомо удовлетворительные (см. напр. "Hello, world")
2. Характеристики будущей системы можно оценить снизу, и они заведомо неудовлетворительные (ну пусть твоя задача с подбором суммы будет такой задачей)
3. Все остальные ситуации: верхняя оценка выше удовлетворительной, нижняя — ниже.
Вот этих третьих, Павел, в природе больше всего. Да если бы даже такая задача была ровно одна — уже её достаточно, чтобы опровергнуть предположение об оцениваемости характеристик в общем случае.

Пойми, сколько бы ты частных примеров или аналогов ни приводил — общий случай ты не докажешь. Так логика устроена. Сходи, почитай.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[11]: попробую еще раз
От: Sinclair Россия https://github.com/evilguest/
Дата: 11.12.10 03:31
Оценка: +1 :))
Здравствуйте, drol, Вы писали:


D>Не знаю как там насчёт случая с сосудом, но вот когда моему шефу потребовалось кое-что по части поведения озонового слоя оценить, то в лабе именно этим самым — моделированием движения каждой молекулы — и занимались.

Ты не переживай. Наш оппонент — дилетант широкого профиля. Поэтому с ним всегда так забавно спорить — он любит приводить заведомо неверные аргументы даже в тех случаях, когда можно привести верные
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: философский вопрос по оптимизации
От: Pavel Dvorkin Россия  
Дата: 11.12.10 05:08
Оценка:
Здравствуйте, Silver_s, Вы писали:

PD>>Вот это и неверно. Чертеж не есть продукт, а только его описание. Исходный код — это продукт.


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


Спроси WolfHound. Мне эта дискуссия вообще не интересна, он меня в нее втравил. А игры в дефиниции меня тем более не интересуют. Пусть будет продукт разной степени готовности, не возражаю. Если еще и WolfHound согласится, можно дискуссию закрыть.


S_>К этой "системе уравнений" есть придирки?


With best regards
Pavel Dvorkin
Re[21]: попробую изложить
От: Pavel Dvorkin Россия  
Дата: 11.12.10 05:26
Оценка:
Здравствуйте, samius, Вы писали:

PD>>Нано ?

S>Именно

Ну тогда я не понимаю. Пусть даже не хилый какой-то камент, а нынешний 3GHz. За 1 сек 3 млрд. тактов, за наносекунду — 3 такта, за 9 наносекунд — 27 тактов. Что за чепуха ? А если еще вспомнить про скорость шины, которая отнюдь не 3 GHz.


PD>>А с другой строны, что мне за радость от задачи, где образуется тройной цикл по 500000 итерации в каждом ? Один черт за разумное время не сделаешь.

S>За минуту не сделать, а если заказчику очень надо, он может и годами ждать завершения счета не самого оптимального решения. И на бабло от пары таких задач может кормиться из года в год десятки лет полторы тысячи человек. Вот скажи, есть ли смысл решать задачу быстрее, если заказчик не может больше ни к кому обратитсья?

Хороший вопрос. Отвечу с удовольствием, тем более, что я в такой ситуации был.

С точки зрения "заработать денег" — нет. Зачем делать лучше, если и так платят ?
С точки зрения уважения к самому себе как к специалисту — сложнее.
Если это "быстрее" некритично, то есть заказчику не нужно — может быть, тоже нет.
А вот если критично — да. Просто потому, что я себя уважать перестану, если буду знать, что мог бы сделать лучше, а не сделал.

Мне в своей время заказчик поставил задачу реализовать нечто не медленнее чем за 100 мсек. Я знал, что ему нужно "как можно быстрее". Но он не мог мне написать "за 10 мсек", потому что не знал, возможно ли такое. Обратиться к кому-то еще он не мог — не потому , что я единственный в мире специалист , а по другим причинам.

Что я должен был делать ? Я мог эти 100 мсек сделать без большого труда, не слишком продумывая, как делать, потому что оценил задачу и пришел к выводу, что в 100 мсек я всегда уложусь. Или я мог сделать как следует, продумать все и получить... я ожидал примерно 20 мсек в среднем, конечно, пессимистическая оценка.

Что бы ты мне посоветовал ?


S>И вот я пишу еще об одном примере, с которым я сталкивался. Задача писалась много лет назад и загружалась оверлейно с ленты, выгружая данные на ту же ленту. Прошли годы, задачу портировали на PC, и вместо того что бы пилить ленту она теперь пилит жесткий диск, пытаясь удержаться в рамках заложенных когда-то килобайт. Ускорение довольно существенное все-таки произошло, но и задачи "выросли". Производительности жестко не хватает. Казалось бы, памяти по тем понятиям — фантастический объем. Но менять что-либо в программе боятся, вдруг будет работать неверно. Ну и все. Программа пилит винт, зарплата идет. Все довольны.


Я, честно говоря, не понял, какое это отношение к вопросу имеет.

PD>>Так что оценку того же быстродействия программы делают — все

S>Сомнительный вывод. Я знаю таких, кто не делает, даже когда надо, и, казалось бы ничто не мешает, кроме отсутствия мотивации к оценкам.

Я вполне согласен, что не делают, когда надо, а в результате имеем что имеем. Но я не о халтуре говорил.
With best regards
Pavel Dvorkin
Re[22]: попробую изложить
От: samius Япония http://sams-tricks.blogspot.com
Дата: 11.12.10 07:42
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, samius, Вы писали:


PD>>>Нано ?

S>>Именно

PD>Ну тогда я не понимаю. Пусть даже не хилый какой-то камент, а нынешний 3GHz. За 1 сек 3 млрд. тактов, за наносекунду — 3 такта, за 9 наносекунд — 27 тактов. Что за чепуха ? А если еще вспомнить про скорость шины, которая отнюдь не 3 GHz.

Характеристик камня в ТЗ не было, но мне тогда сказали что 400MHz.
Странно что ни КБ, ни мое непосредственное начальство (среди них и кандидаты были) чепухой это не считали.

PD>>>А с другой строны, что мне за радость от задачи, где образуется тройной цикл по 500000 итерации в каждом ? Один черт за разумное время не сделаешь.


PD>Мне в своей время заказчик поставил задачу реализовать нечто не медленнее чем за 100 мсек. Я знал, что ему нужно "как можно быстрее". Но он не мог мне написать "за 10 мсек", потому что не знал, возможно ли такое. Обратиться к кому-то еще он не мог — не потому , что я единственный в мире специалист , а по другим причинам.


PD>Что я должен был делать ? Я мог эти 100 мсек сделать без большого труда, не слишком продумывая, как делать, потому что оценил задачу и пришел к выводу, что в 100 мсек я всегда уложусь. Или я мог сделать как следует, продумать все и получить... я ожидал примерно 20 мсек в среднем, конечно, пессимистическая оценка.


PD>Что бы ты мне посоветовал ?

Тут все очень просто. Задача программиста — решить проблему заказчика. Одно дело, когда заказчику надо как можно быстрее, но не медленнее чем 100мсек. Тут можно и расстараться.
Другое дело, когда заказчику быстрее действительно не нужно, но для исполнителя это становится "делом чести".

S>>И вот я пишу еще об одном примере, с которым я сталкивался. Задача писалась много лет назад и загружалась оверлейно с ленты, выгружая данные на ту же ленту. .... Программа пилит винт, зарплата идет. Все довольны.


PD>Я, честно говоря, не понял, какое это отношение к вопросу имеет.

непосредственное!
В момент написания программа делала чудо. Ее архитектура и структуры данных были спроектированы единственно верным способом на тот момент (примерно при Царе-Горохе, когда еще не было динамических массивов и доступное ОЗУ измерялось килобайтами). Можно предположить что для ее авторов это дело было именно вызовом. Сейчас этой программе место в музее, потому как с практической точки зрения она полный отстой. И за те десятки лет, что она пилит винты, ее можно было бы переписать неоднократно без особых ухищрений.
Re[11]: философский вопрос по оптимизации
От: vdimas Россия  
Дата: 11.12.10 08:55
Оценка:
Здравствуйте, FR, Вы писали:

FR>Потому что законы отвечающие за движение планет детерминированы в информатике этого нет.


И не может быть, т.к. "информатика" — это слишком обще, ни о чем. Речь может идти лишь о конкретных алгоритмах, системах, средах передачи данных.

На самом же деле не вижу проблем расчета быстродействия как отдельных алгоритмов, так и достаточно сложных систем, что и делал многократно. Понятное дело, что чем сложней система, тем более нестабильно ее поведение. Например, для однокристалок алгоритмы рассчитываются с точностью до такта, а в многопоточных и многопроцессорных системах мы слишком зависимы на особенностей и глюков операционок и асинхронного (по последней моде) железа. Дык, эти флуктуации тоже вполне измеряемы, а результаты расчетов могут быть в виде неких диапазонов, мат-ожидания и т.д., что гораздо лучше, чем ничего.
Re[9]: философский вопрос по оптимизации
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 11.12.10 09:39
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Ох, Андрей, сейчас далеко пойдем. А на IL — это исходный код или нет ?


Конечно. Вот если бы ты в байткоде или машинном коде писал — другое дело.

Соответсвенно все выводы твои неправильные.

PD>Большинство не может, верно. А некоторые могут. Так что же получается, для тех, кто не может, это описание, а для тех, кто может, скажем, собрать из OO-исходников Linux — это продукт ?


А чертежи ракеты тоже можно продать. Что же выходит, чертежи это продукт ?
Re[12]: попробую еще раз
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 11.12.10 10:59
Оценка:
Здравствуйте, Sinclair, Вы писали:

D>>Не знаю как там насчёт случая с сосудом, но вот когда моему шефу потребовалось кое-что по части поведения озонового слоя оценить, то в лабе именно этим самым — моделированием движения каждой молекулы — и занимались.

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

Шота Синклер нынче злобен
Re: философский вопрос по оптимизации
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 11.12.10 12:48
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

Хочу обратить внимание на то, что у тебя опять чуть более чем вся аргументация построено на аналогиях. Столяры, реакторы, термодинамика и прочая хрень — они к программированию никакого отношения не имеют.

Теперь по делу. Есть в CS такой предмет — теория СМО. Она как раз таки и занимается аналитическими оценками характеристик таких систем. Ну так вот — в самом начале курса подробно рассказывается, как и почему ограничены возможности этой самой теории. Причем вопрос этот разбирается очень подробно, с примерами. В моем случае было очень наглядно продемонстрировано, что простейший процессор на простейших программах с добавлением двухуровневого кеша аналитически уже не описывается. Все известные мне рассчеты статистических хар-к подобных устройств построены исключительно на моделировании.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476 on Windows 7 6.1.7600.0>>
AVK Blog
Re[15]: попробую еще раз
От: Pavel Dvorkin Россия  
Дата: 11.12.10 14:15
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Pavel Dvorkin, Вы писали:



PD>>И не надо. А вот то, что правильно (выделил сейчас выше), по моему мнению, ты, конечно, комментировать не стал, потому что оно тебя не устраивает. Можно ведь перевести разговор...

S>А зачем комментировать очевидное? Речь же не о том, чтобы предсказать характеристики системы для какого-то одного частного случая. Это как раз сделать проще, и никому не интересно.

Речь как раз именно о том, чтобы предсказать их для вот этой конкретной задачи. Универсальное решение совсем не требуется. Где я говорил об универсальном решении, пригодном на все случаи жизни ?

PD>>А ты не пиши глупостей. Напомню, для тех, кто это читает

S>>> Ну давай, напиши мне формулу Менделеева-Клапейрона для дисков.
PD>>Я поначалу хотел тебе более резко ответить, да не стал.
S>Хорошо, Павел. Вижу, ты только свои аналогии любишь — чужие тебе не нравятся. Я тебе расшифрую подробно, не переживай:
S>1. Ты умничал на тему того, что, дескать, для описания поведения газа не нужно моделировать отдельные молекулы.
S>2. Ок, да, для газа есть уравнение Менделеева-Клапейрона, которое оперирует макроскопическими параметрами.
S>3. Ты предлагаешь распространить подход на программирование. Хорошо, пусть тебе не надо моделировать поведение каждой отдельной операции чтения/записи.
S>4. Тогда, наверное, должна быть какая-то формула, аналогичная уравнению Менделеева-Клапейрона, которая свяжет макроскопические параметры нашего ввода-вывода.
S>Ну вот давай, напиши мне эту формулу, остряк академический.

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

В годы моего студенчества была у нас военная подготовка. И был на военной кафедре один майор. И вот однажды вел он у нас занятие по оружию массового поражения. Вызвал кого-то и предложил ему рассказать про цепную ядерную реакцию.

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

Майор этот послушал-послушал и сказал : "Это все не то. Идите, возьмите наставление по ОМП и прочитайте там, что такое ядерная реакция".

Так вот, ты своими заявлениями этого майора мне напомнил. Рассказали тебе в школе. что есть уравнение Менделеева — Клапейрона (формула!), теперь ты ходишь и всем объясняешь — если , мол, есть газ, то к нему надо применить уравнение это, и рассчитать свойства).

А между тем уравнение Менделеева-Клапейрона описывает идеальный газ.Для реального газа оно неприменимо. Я тебе ссылку дал про реальные газы, но ты туда и не заглянул. А зря. Узнал бы много нового. Придется ликбез здесь устроить. Выделено мной

//////////////

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

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

http://ru.wikipedia.org/wiki/%D0%98%D0%B4%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B3%D0%B0%D0%B7

/////////

Замечу, кстати, что Википедия слишком оптимистична. Уравнение ван дер Ваальса и аналогичные приходится использовать не только в случае экстремальных температур или давлений, но и просто в зависимости от задачи, а также от формулы вещества.

Для описания характеристик реального газа, верно, все равно не надо оценивать поведение каждой молекулы, да это и невозможно. Вместо этого там используются уравнения макроописания, но зависящие от свойств этого реального газа. Параметры этой зависимости могут либо рассчитываться теоретически (к примеру, модель АММВ), либо определяться экспериментально. После того, как эти параметры определены, поведение реального газа можно описать неким уравнением с большей или меньшей степенью точности. Сама задача расчета свойств вещества ничуть не проще задачи оценки быстродействия программы и решается для каждого газа по отдельности. И не только для газов, но и для жидкостей и кристаллов. Это тема многих научных исследований.

Вот сюда загляни

http://ru.wikipedia.org/wiki/%D0%A3%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_%D0%92%D0%B0%D0%BD-%D0%B4%D0%B5%D1%80-%D0%92%D0%B0%D0%B0%D0%BB%D1%8C%D1%81%D0%B0

Там речь идет о модели ван дер Ваальса, которая не так проста, а главное — зависит от параметров, которые для разных газов отличаются. Их вычисление или определение и представляет собой одну из сложнейших задач современной химии. Тут и квантово-химические методы используются, и полуэмпирические, и просто эмпирические. Целая отрасль современной физической химии.

Вот и пойди ко всем этим научным сотрудникам в их институры и скажи : "Ребята, а чем вы тут занимаетесь ? Я же еще в школе учил, что свойства газа определются уравнением Менделеева-Клапейрона. Идите, возьмие школьный учебник за 10 класс и прочитайте там, как надо свойства газов рассчитывать"

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

Впрочем, ты дискутировать с ними не пойдешь. Прекрасно понимаешь. что оскандалишься. Я тебя пару раз приглашал в форум по Win API, когда ты, ничтоже сумняшеся , решил по его техническим вопросам высказываться. Казалось бы, чего проще — пойти туда и там свою точку зрения защищать. Да нет, не решился. Понимаешь — побьют. Там же люди по существу вопросы обсуждают. там горлом не возьмешь

И с программами так же. Написать универсальную формулу для любой программы — невозможно, но зачем ее писать-то ? Если разрабатывать сфероконь, то да, надо. Но для написания данной конкретной программы совсем не требуется универсальное уравнение, нужно лишь решать эту задачу в применении к этой конкретной программе. В одном случае надо учесть скорость работы GPU, потому что имменно он лимитирует, а в другом диска или кеша.

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

Вот и все.

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

PD>>Чудненькая логика, ничего не скажешь. Мне, который с этими мейлбоксамии и дела не имел и про сервер этот ничего не знает, предлагается быстро эту формулу написать. На основании того, что я это не сделаю, делается вывод, что это невозможно. Прелесть, да и только. По-видимому, следующий вывод — поскольку я не в состоянии рассчитать траекторию космического корабля, рассчитать ее нельзя. Ну и ну...

S>Какой ты Павел хитрый. Когда, значит, мы тут пишем тебе "нет, мы не можем в общем случае оценить характеристики будущей системы", ты прямо тут каждого за лоха держишь. Как-то стыдно требовать от других того, чего не требуешь от себя.

Можно дать ссылку, где я просил в общем случае оценить характеристики неизвестно какой системы ? Я всегда имею в виду ту программу, которую мы собрались разрабатывать. И о ней я должен знать, что она будет делать и т.д. Именно поэтому я не собираюсь оценивать твой мейлбоксы — я они ничего не знаю. Вот когда прочту ТЗ, проанализирую задачу — тогдва и постараюсь определить, чего тут можно ждать и на что надеяться.


PD>>>Я тебе в другом месте вопрос задал насчет NP-полной задачи при N=1000. Ты не ответил, так что повторяю свой вопрос. Ты же не будешь ее решать ? Причем априорно откажешься, так ? А почему, собственно ? Надо сделать макет и замерить его поведение! Сделали, запустили, программа при N=1000 все никак закончиться не может. Пилим ее профайлером. Пилите, Шура, пилите

S>Ну ведь пилят, и таки распиливают?

Да ну ? Так-таки кто-то пилит 2^100 и даже распиливает ? Можно имя его ?

PD>>За что там люди берутся, это не так важно, и за что я могу взяться, тоже к делу не относится. Ты возьмешься ?. Ты же утверждаешь, что надо прототип написать, потом профайлером довести и т.д.

S>Конечно надо.

Ну вот и сделай. Я тебе могу алгоритм перебора всех 2^100 битовых комбинаций дать. Могу даже код написать. Возьми и допили. На том свете через миллиард веков встретимся, расскажешь, что получилось.

PD>>Ну вот тебе задача по нахождению заданной суммы путем взятия элементов массива попарно различных чисел , когда каждое число можно брать 1 раз или не брать совсем. Надеюсь, ты не будешь прикидываться, что тебе эта задача неизвестна. Размер массива — 100, даже не 1000. Надо полагать, ты возьмешься за эту задачу ?

PD>>Берешься ? Да или нет ? Не виляй!
S>Надо будет — возьмусь. Если не получится с точным решением, попробую прикрутить частичное.

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

Вот тебе окончательная формулировка, чтобы не было соблазна юлить

http://rsdn.ru/forum/philosophy/4073406.1.aspx
Автор: Pavel Dvorkin
Дата: 10.12.10


PD>>То-то и оно. И ежу понятно, почему ты вместо того, чтобы ответить, начинаешь вилять да юлить. Потому что взяться за задачу 2^100 ты не можешь, само собой. А не можешь потому, что оценил время , необходимое для решения этой задачи, и понял, что это время хорошо превышает не только время твоей жизни, но как бы и не время существования солнечной системы.

PD>>А сказать ты это не хочешь, так как понимаешь, что после такого признания все твои разглагольствования насчет невозможности оценки пойдут прахом, вместе с твоей демагогией.
S>Нет, Павел, не пойдут. Ещё раз объясняю, в последний раз, медленно: есть, грубо говоря, три класса ситуаций:
S>1. Характеристики будущей системы можно оценить сверху, и они заведомо удовлетворительные (см. напр. "Hello, world")
S>2. Характеристики будущей системы можно оценить снизу, и они заведомо неудовлетворительные (ну пусть твоя задача с подбором суммы будет такой задачей)
S>3. Все остальные ситуации: верхняя оценка выше удовлетворительной, нижняя — ниже.

Хм. Начинаешь соображать. Не все еще потеряно.

Остается лишь ответить на маленький вопрос — как тебе удалось классифицировать задачу как относящуюся к одной из этих трех категорий. Ну с первой более или менее ясно. А вот со второй и третьей...Вот samius привел пример некоей странной задачи, которую от него требовали решить за 9 нсек. То есть 10 нсек — неудовлетворительно. Ну ладно, с 9 нсек понять невозможно. Допустим, от него бы требовали 9 микросекунд. Так каким же образом ты определишь, что эта задача относится к классу 2 по твоей классификации (незачем и браться) или к классу 3 (можно попробовать). Ведь если это класс 2 — то никакой профайлер не поможет, пили не пили. А если класс 3 — надо делать. Тут никаких 2^100, тут совсем наоборот, малые числа, но от решения за 10 микросекунд тольку не больше, чем от программы, которая перебирает 2^100 вариантов. Собственно, разница одна — за 2^100 тебя выгонят и еще понасмехаются, а вот за 10 микросекунд — тоже выгонят, хотя насмехаться не будут.


S>Вот этих третьих, Павел, в природе больше всего. Да если бы даже такая задача была ровно одна — уже её достаточно, чтобы опровергнуть предположение об оцениваемости характеристик в общем случае.


Хм. Верхняя оценка выше, нижняя ниже, значит надо пытаться найти способ оценить интервал лучше. Ну а уж насчет того, что их больше всего — это в наше-то время ? Не смеши хоть. Больше всего именно класса 1. Многие ли, приступая к разработке заурядно среднего сайта, сомневаются в том, что он получится ? Еще бы — ресурсов раз в 5-10 больше, чем необходимо.

S>Пойми, сколько бы ты частных примеров или аналогов ни приводил — общий случай ты не докажешь. Так логика устроена. Сходи, почитай.


Пойми простую вещь — мы не о математике говорим, а о реальном мире. В реальной мире во-первых, вообще не доказывают (в математическом смысле), а создают теории и сравнивают с экспериментом (реальным миром). Если теория блестяще математически оформлена, но с экспериментом конфликтует, то на свалку ее. Если она работает в 90% случаев, то в большинстве наук о реальном миире исследователь будет в восторге от своих результатов и это все признают. Более того, порой принимают даже логически противоречивые теории — что делать, если других нет...
With best regards
Pavel Dvorkin
й
Re[23]: попробую изложить
От: Pavel Dvorkin Россия  
Дата: 11.12.10 14:21
Оценка:
Здравствуйте, samius, Вы писали:


PD>>Ну тогда я не понимаю. Пусть даже не хилый какой-то камент, а нынешний 3GHz. За 1 сек 3 млрд. тактов, за наносекунду — 3 такта, за 9 наносекунд — 27 тактов. Что за чепуха ? А если еще вспомнить про скорость шины, которая отнюдь не 3 GHz.

S>Характеристик камня в ТЗ не было, но мне тогда сказали что 400MHz.
S>Странно что ни КБ, ни мое непосредственное начальство (среди них и кандидаты были) чепухой это не считали.

Я просто понять не могу. 400 MHz — это 2.5 нсек на такт. 9 нсек — это 4 такта. Что за чушь ?

PD>>Мне в своей время заказчик поставил задачу реализовать нечто не медленнее чем за 100 мсек. Я знал, что ему нужно "как можно быстрее". Но он не мог мне написать "за 10 мсек", потому что не знал, возможно ли такое. Обратиться к кому-то еще он не мог — не потому , что я единственный в мире специалист , а по другим причинам.


PD>>Что я должен был делать ? Я мог эти 100 мсек сделать без большого труда, не слишком продумывая, как делать, потому что оценил задачу и пришел к выводу, что в 100 мсек я всегда уложусь. Или я мог сделать как следует, продумать все и получить... я ожидал примерно 20 мсек в среднем, конечно, пессимистическая оценка.


PD>>Что бы ты мне посоветовал ?

S>Тут все очень просто. Задача программиста — решить проблему заказчика. Одно дело, когда заказчику надо как можно быстрее, но не медленнее чем 100мсек. Тут можно и расстараться.

Именно это я и сделал

S>Другое дело, когда заказчику быстрее действительно не нужно, но для исполнителя это становится "делом чести".


А пожалуй, было бы и так. Некомфортно я себя почувствовал бы, если бы мог сказать самому себе : а ведь мог сделать значительно лучше

S>>>И вот я пишу еще об одном примере, с которым я сталкивался. Задача писалась много лет назад и загружалась оверлейно с ленты, выгружая данные на ту же ленту. .... Программа пилит винт, зарплата идет. Все довольны.


PD>>Я, честно говоря, не понял, какое это отношение к вопросу имеет.

S>непосредственное!
S>В момент написания программа делала чудо. Ее архитектура и структуры данных были спроектированы единственно верным способом на тот момент (примерно при Царе-Горохе, когда еще не было динамических массивов и доступное ОЗУ измерялось килобайтами). Можно предположить что для ее авторов это дело было именно вызовом. Сейчас этой программе место в музее, потому как с практической точки зрения она полный отстой. И за те десятки лет, что она пилит винты, ее можно было бы переписать неоднократно без особых ухищрений.

Это я понял сразу, но что это доказывает ? Просто ее действительно надо было переписать, хорошо, но современными методами.
With best regards
Pavel Dvorkin
Re[2]: философский вопрос по оптимизации
От: Pavel Dvorkin Россия  
Дата: 11.12.10 14:46
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Pavel Dvorkin, Вы писали:


AVK>Хочу обратить внимание на то, что у тебя опять чуть более чем вся аргументация построено на аналогиях. Столяры, реакторы, термодинамика и прочая хрень — они к программированию никакого отношения не имеют.


1. Обратись к Синклеру , это ему захотелось продемонстрировать своб ученость в области термодинамики. Вот и пришлось его маленько поучить.
2. Все остальное — не аналогии, а вопросы — почему там иначе. Это имеенно меня и интересует.



AVK>Теперь по делу. Есть в CS такой предмет — теория СМО. Она как раз таки и занимается аналитическими оценками характеристик таких систем. Ну так вот — в самом начале курса подробно рассказывается, как и почему ограничены возможности этой самой теории. Причем вопрос этот разбирается очень подробно, с примерами. В моем случае было очень наглядно продемонстрировано, что простейший процессор на простейших программах с добавлением двухуровневого кеша аналитически уже не описывается. Все известные мне рассчеты статистических хар-к подобных устройств построены исключительно на моделировании.


Почитай мой ответ ему

http://rsdn.ru/forum/philosophy/4074772.1.aspx
Автор: Pavel Dvorkin
Дата: 11.12.10


Примеров могу привести хоть сотню, да ведь тебе аналогии не нравятся.
With best regards
Pavel Dvorkin
Re[16]: попробую еще раз
От: samius Япония http://sams-tricks.blogspot.com
Дата: 11.12.10 16:32
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>...Вот samius привел пример некоей странной задачи, которую от него требовали решить за 9 нсек. То есть 10 нсек — неудовлетворительно. Ну ладно, с 9 нсек понять невозможно. Допустим, от него бы требовали 9 микросекунд. Так каким же образом ты определишь, что эта задача относится к классу 2 по твоей классификации (незачем и браться) или к классу 3 (можно попробовать).


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

А история моя была о том, как дилетанты составляют ТЗ.

Что бы не компрометировать людей, занимающихся гособоронзаказами, открою секрет, что эта задача была местной инициативой. Т.е. эта чушь про 9 наносекунд исходила от начальников подразделений института, который вообще-говоря совсем другого профиля и не занимался (до сих пор) задачами управляемого беспилотного полета, задачами наведения, распознавания и т.д. Решили разработать высокоточное оружие для того что бы привлечь финансы...
За 6 лет достигнутых успехов не хватит даже на то что бы умный пылесос сделать.
Re[17]: попробую еще раз
От: Pavel Dvorkin Россия  
Дата: 11.12.10 17:40
Оценка: +1 -1
Здравствуйте, samius, Вы писали:

S>А история моя была о том, как дилетанты составляют ТЗ.


А ты знаешь, ничего удивительного.

Я — студент 4 курса. Нас начинают обучать программированию. Первая лекция по Алголу. И тут преподаватель буквально ошарашивает нас тем, что, оказывается, для того, чтобы решить простенькое линейное уравнение. я должен сам его аналитически решить, формулу записать и после этого программу сделать. Оказывается, не умеют эти машины сами решать уравнения. И интегралы аналитически брать не умеют (Mathcad, как понимаешь, еще в отдаленном будущем).

Как так ? Я умею, а они не умеют ? Я же не могу 20 тысяч операций в секунду делать, а они могут, и что же, при этом простенький интеграл взять не могут ?

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

With best regards
Pavel Dvorkin
Re[17]: попробую еще раз
От: Silver_s Ниоткуда  
Дата: 11.12.10 18:35
Оценка:
Здравствуйте, samius, Вы писали:

S>А история моя была о том, как дилетанты составляют ТЗ.


S>Что бы не компрометировать людей, занимающихся гособоронзаказами, открою секрет, что эта задача была местной инициативой. Т.е. эта чушь про 9 наносекунд исходила от начальников подразделений института, который вообще-говоря совсем другого профиля


Ну 9 нс это надеюсь твое метафоричекое преувеличение, а не реальная цифра.
Если последнее, то начальник скорее всего описа'лся. Имел ввиду 9 милисекунд, но начальство не стали беспокоить по мелочам, и решали задачу 6 лет
В тех-задании, надеюсь, скорость болванки запланированна равной скорости света, а не больше?
Тогда 3E8*9E-9 = 2.7 метра. Зачем через каждые 3 метра направление корректировать?
Re[18]: попробую еще раз
От: samius Япония http://sams-tricks.blogspot.com
Дата: 11.12.10 19:42
Оценка:
Здравствуйте, Silver_s, Вы писали:

S_>Здравствуйте, samius, Вы писали:


S_> Ну 9 нс это надеюсь твое метафоричекое преувеличение, а не реальная цифра.

Это цифра из ТЗ
S_> Если последнее, то начальник скорее всего описа'лся. Имел ввиду 9 милисекунд, но начальство не стали беспокоить по мелочам, и решали задачу 6 лет
S_> В тех-задании, надеюсь, скорость болванки запланированна равной скорости света, а не больше?
S_>Тогда 3E8*9E-9 = 2.7 метра. Зачем через каждые 3 метра направление корректировать?
Полет мыслей идеологов в ТЗ не освещался, и обсуждать его с исполнителями они при мне не собрались. В любом случае коррекция не получалась бы чаще чем раз в секунду (время работы оптики между получением первой и последней строчек кадра). А за это время даже на релятивистских скоростях многое может измениться.

Чем больше деталей я тут буду выкладывать, тем большим бредом будет казаться не только эта задача, но и место, в котором я работал. Заранее предупреждаю — у меня нет никаких документальных доказательств в пользу того что этот бред имел место. Кроме разве что благодарности директора, врученной мне незадолго перед уходом.
Re: философский вопрос по оптимизации
От: Libsdebs  
Дата: 12.12.10 07:18
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>В настоящее время большинство решило, что premature optimization — это зло, что этого делать не надо. Надо создать некую работающую систему, а потом посмотреть — работает ли она с нужными характеристиками. Если нет — оптимизировать те места, которые являются узким местом, находить их можно с помощью профайлера и т.д.



Это лишь твое понимание "premature optimization", причём узколобое.

Вот же мое — если есть готовая система, то не нужно кидаться оптимизировать всякие локальные места, нужно смотреть в общем. Причём направлена эта фраза на зелёных отимиздаторов, а профи и так знает что и как ему делать.
Я часто видел как люди кидались оптимизировать части работающей системы, лишь потому что им показалось, что будет работать быстрее, хотя эти части ни разу не являлись bottleneck'ом.. либо кому-то казалась что эта часть работает очень долго, хотя на самом деле это всего лишь их узколобое мнение..
Re: философский вопрос по оптимизации
От: Libsdebs  
Дата: 12.12.10 07:24
Оценка: :)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>В настоящее время большинство решило, что premature optimization — это зло, что этого делать не надо. Надо создать некую работающую систему, а потом посмотреть — работает ли она с нужными характеристиками. Если нет — оптимизировать те места, которые являются узким местом, находить их можно с помощью профайлера и т.д.


И кстати, вот определение с wiki (конечно не авторитет, но всё же)

"Оптимизация — модификация системы для улучшения её эффективности."

А это модификация, а не создание..
Re: философский вопрос по оптимизации
От: Libsdebs  
Дата: 12.12.10 07:26
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>В настоящее время большинство решило, что premature optimization — это зло, что этого делать не надо. Надо создать некую работающую систему, а потом посмотреть — работает ли она с нужными характеристиками. Если нет — оптимизировать те места, которые являются узким местом, находить их можно с помощью профайлера и т.д.



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