Программирование - это просто

SCTRWD

Местный
Да это Вы все об эффективности. Я же не утверждаю что динамические языки заменят статические в счетных задачах. Я только сказал, что железо дешевле рабочей силы. Для большинства современных задач, это справедливо. И уж газодинамика и Монте-Карло никак к этому большинству не относятся.
Хотите задччи, которые относятся? Да пожалуйста: доброе Вашему сердцу 3D моделирование и рендеринг.

Я говорю о том, чтобы Вы подтвердили свои слова о плохом дизайне ссылками на авторитеты, съевших собак. Не уводите.

А что Вы хотите услышать-то? Что многие из программ не эффективны и страдают плохим дизайном? Ну так так и есть. Просто Вы этого не ХОТИТЕ замечать, а эти программы на дадут Вам те делать вещи, в которых они не эффективны. Естессвенно, Вы об этом никогда не узнаете, и останетесь в радужном неведении.

Либо выводите меня на чистую воду, либо признайте что Вы и об этих принципах не слышали.
Вообще я позволю себе резюмировать Ваше поведение в этой ветке:
Вы влезли в ветку с обсуждением материй, с которыми Вы не потрудились ознакомиться даже в википедии. Сделали голословное заявление о плохом дизайне; при попытке выяснить источник, отсылаете к людям, съевших собак, которых якобы должны знать те, кто занимается этим вопросом СЕРЬЕЗНО; сами этих людей назвать не хотите, юлите как уж на сковороде.

Далее Вы объвинили меня в блефе, позволили себе усомниться в том, что я понимаю и использую по назначению базовые принципы (которых, Вы судя по всему, не знаете), уличать меня в блефе не собираетесь, видимо хотите, чтобы я сам сдался ))).

Вобщем, спора у нас с Вами не выйдет. [вырезано] (Аргументировать Вы не умеете).

Давйте-ка договоримся, я не обязан делать то что Вам по душе, а буду делать только то, что сочту нужным. Вам дали ответ на Ваш вопрос, полный и исчерпывающий. Он Вам не нравится - это другой вопрос, исходите из того что Вам ответили, а не из того, что Вам ХОЧЕТСЯ, чтобы Вам ответили, и что бы Вас устроило в Ваших ментальных поединках с самим собой.
 

sami

Местный
Хотите задччи, которые относятся? Да пожалуйста: доброе Вашему сердцу 3D моделирование и рендеринг.
Отлично. Еще назовите процент пользователей, которые занимаются этими задачами. И опять таки, ускорить решение этих задачь проще железом! Железо дешевле. GPU входят в почет, скоро на них и газодинамику начнут считать, если уже не начали.

А что Вы хотите услышать-то? Что многие из программ не эффективны и страдают плохим дизайном? Ну так так и есть. Просто Вы этого не ХОТИТЕ замечать, а эти программы на дадут Вам те делать вещи, в которых они не эффективны. Естессвенно, Вы об этом никогда не узнаете, и останетесь в радужном неведении.
Я хотел услышать ссылку на авторитетных собакоедов. Видимо не судьба.

Давйте-ка договоримся, я не обязан делать то что Вам по душе, а буду делать только то, что сочту нужным. Вам дали ответ на Ваш вопрос, полный и исчерпывающий. Он Вам не нравится - это другой вопрос, исходите из того что Вам ответили, а не из того, что Вам ХОЧЕТСЯ, чтобы Вам ответили, и что бы Вас устроило в Ваших ментальных поединках с самим собой.
Я вижу, Вы этим и занимаетесь. Аргументы/ссылки будут?
 

sami

Местный
Для тех кто следит за платформой .NET, наверняка не секрет, что со следующим релизом платформы будут доступны динамические типы.

http://www.microsoft.com/uk/msdn/flash/20081215.htm

Traditionally, there has been tension between dynamic languages and static languages. Each language has its distinct strengths and weaknesses, which means a choice: constrain yourself to one language or face the pain of language interoperability.

The Dynamic Language Runtime (DLR) solves this problem. The Common Language Runtime (CLR) provides a unified platform for statically typed languages. The DLR extends the CLR to provide a unified platform for dynamic languages on the .NET platform. This means that there is a common, unified platform for static and dynamic languages. By having one platform, which means one object world, the pain of language interoperability is history.

In addition to dynamic languages such as IronPython and IronRuby, C# and VB will also, in the 4.0 release of the .NET platform, be able to take advantage of the DLR. In C# this capability is achieved through a new type: dynamic. Declaring a dynamic type in C# 4.0 tells the compiler that method resolution is to be performed at runtime. Thereâ?™s a DynamicObject abstract class (which implements the IDynamicObject interface) that allows you to create your own dynamic objects in your chosen .NET language. In Visual Basic 10, the latebinder will be updated to recognise objects that implement the IDynamicObject interface, which will allow developers to take full advantage of dynamic languages from VB.
Сожалею, но ничего на русском пока не нашел.

Впрочем, все это не означает, что C# и VB становятся полноценными динамическими языками. Все же это будут статические языки с поддержкой runtime method resolution.
Данная поддержка вводится в платформу прежде всего для упрощения взаимодействия статических языков платформы со внешним миром, в частности с MS Office, с типами платформы DLR. Любые типы, созданные в языках платформы CLR, будут все же статические, но возможность писать методы, принимающие аргументы динамических типов можно.

Так же присутствует возможность встраиваться в runtime method resolution с помощью реализации специального интерфейса. А это значит, что технически возможно создавать объекты, обладающие динамическим набором атрибутов и методов.

Таким образом, языки C#, VB и новый F# становятся гораздо мощнее в плане возможности работы с динамическими типами, но в ряд динамических языков, их все же ставить нельзя.
 

sami

Местный
Интересно, двинется-ли mono в эту сторону?
Имхо, должен. Все эти фичи будут прописаны в стандарте платформы. А mono - лишь одна из некоммерческих реализаций. Вот как скоро mono станет поддерживать .net 4.0 - большой вопрос (за mono не слежу).
 

sami

Местный
да конечно решают. Вона даже в SDK CUDA пример с Монте-Карло видал. А CUDA поддерживается даже на весьма бюджетных видеокартах (GF начиная с 8-го поколения; одна такая карточка стоит в 15 раз меньше, чем зарплата среднего программиста).

Monte Carlo Black-Scholes:
After developing in emulation mode I got a GeForce 8500 GT for about 50 EUR today. The first benchmark I tried was Monte Carlo simulations which speed up by a factor of 73 ! Monte Carlo is easy to parallelize, so I will try other algorithms soon…
The results for the NVDIA GPGPU demonstrate the computational capability of the GPGPU, providing a 23X increase when compared to a single CPU core and a 3X increase for an 8-core platform.
 

@live

Новичок
Не верю в программистов-филантропов :)
Чем программист отличается от любой другой профессии в плане отношения к любимому делу? Да и громадное линкус-сообщество прямое тому доказательство. Если человек любит в чём-нибудь копаться, ковыряться, разбирая каждый объект до мельчайших примитивов, чтобы из них построить что-то своё, причём с желанием и рвением, которые способны свернуть горы - какая разница, программист ли он или бизнесмен какой-нить, например. Хотя вопрос веры - это, конечно, личное дело каждого :)
По своему опыту могу сказать, что не всем понятный код в проектах, где работает более одного человека (даже если для души), вызывает недоумение и сложности в поддержке. Ладно еще, когда код не всем понятен всилу разного уровня владения языком/парадигмой/предметной областью, возможно это простимулирует некоторых к дальнейшему обучению. Главное тут, чтобы не всем понятный код не был самоцелью. Писать понятный код - поистине искувство.
Мне кажется в эпоху ООП, это совершенно не проблема, майкрософт (может и не первые, но самые заметные) ещё в .net ввела возможность полиязыкового кодинга. Мега гениальная турбо сортировка на асме в каком-нибудь заинкапсулированном JustGeniusLib (.h или .java в моём случае) будет для меня настоящим подарком. Сам знаю, что такое код без комментариев, но в данном контексте я говорил немного о другом.
Не могу согласиться с идиомой, т.к. профессия машиниста слабо вяжется с программированием. Программист - это первым делом инженер, потом уже конструктор, хирург, терапевт, телепат, в чем-то историк, стратег, скорее поэт, чем художник и, на худой конец, паровоз, но не машинист. Машинист - это уже менеждер.
Мне хотелось продолжить аналогию. Автор сравнил программиста с музыкантом. Я сразу представил гениального Моцарта, пишущего "на века". Художники так же легко встают в этот ряд. Для меня идея творчества первична, программист - это создатель(вечного или коммерческого?), именно с этого тезиса нужно понимать мой пост. Здесь художник абсолютно эквивалентен поэту (не знаю, где вы увидели разницу). Машинист - больше менеджер, согласен, именно поэтому я его привёл в сравнение с чистым не менеджером. Создать(create) сортировку с нуля или оперировать(manage) готовыми классами, шаблонами, но в сотни раз быстрее - как вариант выбора, если вам так будет понятнее.
 

SCTRWD

Местный
да конечно решают. Вона даже в SDK CUDA пример с Монте-Карло видал. А CUDA поддерживается даже на весьма бюджетных видеокартах (GF начиная с 8-го поколения; одна такая карточка стоит в 15 раз меньше, чем зарплата среднего программиста).

Monte Carlo Black-Scholes:

Так, на всякий случай. Монте-Карло - это не задача, и не алгоритм, это ИДЕЯ. И эта идея прикладывается к разным задачам. Для решения задачи нахождения числа пи - это один коленкор, а для решения серьёзных задач переноса - СОВСЕМ другой. Все т.н. "карточки" эксплуатируют одно банальное свойство - разделение задачи на серию маленьких подзадач с диким ограничением по памяти. Оттого и скорость в эти карточках берётся, что памяти самый минимум, других ресурсов нет.

Для нахождения пи памяти требуется несколько килобайт, а для серьёзных задач переноса - от нескольких сот мегабайт и до упора. Так что просто упоминание о Монте-Карло ни о чём не говорит, важно ЧТО они считали по методу Монте-Карло.
 

SCTRWD

Местный

Ну, на сколько я вижу, элементарная задача из разряда найти пи или интеграл посчитать. Про серъёзные задачи есть упоминание?

Помогу Вам: есть код, под названием Milargo, разработанный в Лос-Аламосе под Cell архитектуру Roadrunner. Два года работы, итог - 9х ускорение, и всё коту под хвост - следующий комплеск они строят не на Cell :) :lol:
 

sami

Местный
Ну, на сколько я вижу, элементарная задача из разряда найти пи или интеграл посчитать. Про серъёзные задачи есть упоминание?
Если интересно, поищите сами. Или поспрошайте в НТО-2. Есть у кого.
Серьезные задачи, кстати, понятие субъективное.

Помогу Вам: есть код, под названием Milargo, разработанный в Лос-Аламосе под Cell архитектуру Roadrunner. Два года работы, итог - 9х ускорение, и всё коту под хвост - следующий комплеск они строят не на Cell :) :lol:
И что, мне их пожалеть?
Кстати, некоторые суперкомьютеры (из последних, возможно еще в разработке) имеют на борту несколько дюжин GPU, что и выводит их на первые места по производительности. Где-то была ссылка на форуме...
 

sami

Местный
Чем программист отличается от любой другой профессии в плане отношения к любимому делу? Да и громадное линкус-сообщество прямое тому доказательство. Если человек любит в чём-нибудь копаться, ковыряться, разбирая каждый объект до мельчайших примитивов, чтобы из них построить что-то своё, причём с желанием и рвением, которые способны свернуть горы - какая разница, программист ли он или бизнесмен какой-нить, например. Хотя вопрос веры - это, конечно, личное дело каждого :)
От программирования можно получать удовольствие. Вместе с тем можно получать некоторый продукт, полезный опыт, знания. Но в программирование от скуки я не верю (во всяком случае в продолжительное).

Мне кажется в эпоху ООП, это совершенно не проблема, майкрософт (может и не первые, но самые заметные) ещё в .net ввела возможность полиязыкового кодинга. Мега гениальная турбо сортировка на асме в каком-нибудь заинкапсулированном JustGeniusLib (.h или .java в моём случае) будет для меня настоящим подарком. Сам знаю, что такое код без комментариев, но в данном контексте я говорил немного о другом.
Не уловил мысль, замечу только, что эпоха ООП - это довольно серьезное заявление. Во-первых, ООП так и не успел расцвести, во-вторых он уже угасает. Возможно, что он просто из болезни стал превращаться в инструмент, область применения которого не так широка, как казалось мэтрам. Столпы ООП пошатнулись. Хотя засунуть его можно практически всюду. (ИМХО)
Сортировка в майкрософт-е не объект, и оперирует она не объектами в общем случае. С появлением LINQ, сортировка даже стала не методом, а декларацией. И это довольно удобно.

Мне хотелось продолжить аналогию. Автор сравнил программиста с музыкантом. Я сразу представил гениального Моцарта, пишущего "на века". Художники так же легко встают в этот ряд. Для меня идея творчества первична, программист - это создатель(вечного или коммерческого?), именно с этого тезиса нужно понимать мой пост. Здесь художник абсолютно эквивалентен поэту (не знаю, где вы увидели разницу). Машинист - больше менеджер, согласен, именно поэтому я его привёл в сравнение с чистым не менеджером. Создать(create) сортировку с нуля или оперировать(manage) готовыми классами, шаблонами, но в сотни раз быстрее - как вариант выбора, если вам так будет понятнее.
Программист - прежде всего инженер. Он создает продукт, которым будут пользоваться люди. Пользователям плевать с высокой колокольни, на сколько гениально написана программа, ЕСЛИ ПРОГРАММА ДЕЛАЕТ ТО ЧТО ДОЛЖНА. За гениальность программистам деньги не платят, кроме разве что тех случаев, когда за счет гениальности программиста удается сократить ресурсы на разработку, да и то, скорее всего разница в расходах пойдет не в карман гению.

Оно конечно хорошо, когда программист - художник. Но если художник будет преобладать над инженером, дела плохи.
 

SCTRWD

Местный
Если интересно, поищите сами. Или поспрошайте в НТО-2. Есть у кого.
Говорю же, я и так вижу... А в НТО-2 мне далеко ходить не надо, достаточно у самого себя спросить.

Серьезные задачи, кстати, понятие субъективное.
Конечно, только реальные требования, реальных серьёзных задач - вещь объективная, и никуда от этого не денешься...

И что, мне их пожалеть?
Кстати, некоторые суперкомьютеры (из последних, возможно еще в разработке) имеют на борту несколько дюжин GPU, что и выводит их на первые места по производительности. Где-то была ссылка на форуме...
Да пусть хоть у них производительность зашкалит выше приличий. Это нужно только инженерам этих суперкомьютеров. Бенчмарки там нарисовать, кандитатские защитить. А как дело доходит до ПОЛЬЗОВАТЕЛЕЙ, так тушите свет, их никто и не спрашивал, оказывается. Затраты производителей софта по адаптации кода в эти гестаповские рамки совершенно не оправдывают себя, и выливаются в деньги на ветер, в унитаз.

Конечно, есть задачи, ИДЕАЛЬНО ложащиеся на эту архитектуру: визуализация, рендеринг и т.д. Только строить суперкомьютер ТОЛЬКО для них - жирно будет.
 

sami

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

Для нахождения пи памяти требуется несколько килобайт, а для серьёзных задач переноса - от нескольких сот мегабайт и до упора.
Несколько сот мегабайт в карточку влезут. Гигабайт уже норма для геймерских карт. Не сказал бы, что ограничение такое уж дикое. Кроме того, уже сейчас, ограничение по пропускной способности интерфейса приближается к Gb/s.
 

SCTRWD

Местный
Ну что сказать? Начните этим РЕАЛЬНО заниматься, для реального серьёзного промышленного комплекса - и всё сами поймёте.
Уверяю Вас, я этим плотно занимался, и знаю о чём говорю. Просто вдруг, откуда ни возьмись, выплывут некие ограничения, которые сведут всю идею на нет.
 

sami

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

Да пусть хоть у них производительность зашкалит выше приличий. Это нужно только инженерам этих суперкомьютеров. Бенчмарки там нарисовать, кандитатские защитить. А как дело доходит до ПОЛЬЗОВАТЕЛЕЙ, так тушите свет, их никто и не спрашивал, оказывается. Затраты производителей софта по адаптации кода в эти гестаповские рамки совершенно не оправдывают себя, и выливаются в деньги на ветер, в унитаз.
Да, надо же переписывать код, 30 лет назад писанный)))

Конечно, есть задачи, ИДЕАЛЬНО ложащиеся на эту архитектуру: визуализация, рендеринг и т.д. Только строить суперкомьютер ТОЛЬКО для них - жирно будет.
Вы можете утрудить себя хотябы чтением научно-популярных заметок о предмете разговора? Опять пальцем в небо не попали))) CUDA, не используется для рендеринга. CUDA - это возможность использовать ресурсы GPU для счета! Зачем делать рендеринг на CUDA, если для этого есть OpenGL, DirectX?!?!?

Ну что сказать? Начните этим РЕАЛЬНО заниматься, для реального серьёзного промышленного комплекса - и всё сами поймёте.
Уверяю Вас, я этим плотно занимался, и знаю о чём говорю. Просто вдруг, откуда ни возьмись, выплывут некие ограничения, которые сведут всю идею на нет.
За это мало и мало где платят. )))
 

SCTRWD

Местный
В НТО-2 уже обкатывают CUDA. Это факт. То что Вы об этом не знаете, говорит о Вашей неосведомленности.
Да мало ли где кто и что там "обкатывает"! У меня своя программа, и я буду исходить от неё. Подобных псевдо-сенсаций на моей памяти было много - все канули в лету.

Да, надо же переписывать код, 30 лет назад писанный)))
Вот именно, Вы это очень правильно подметили. Вы будете переписывать свой код так, чтобы размер стэковой памяти + размер динамической памяти + размер кодовой части не превышал 256 Kb? Можете? А всё что сверх того, надо запросить у головного процесса в процессе счёта, оформив запрос сооветсвующим образом. При этом, как то, не понятно как, обяснить головному процессу, какие именно данные из сотен тысяч, Вам нужны? Вы готовы к этому? Попробуйте хоть одну свою серьёзную программу подвести под эти требования!

Ну-ну, вперёд и с песней.

Вы можете утрудить себя хотябы чтением научно-популярных заметок о предмете разговора? Опять пальцем в небо не попали))) CUDA, не используется для рендеринга. CUDA - это возможность использовать ресурсы GPU для счета! Зачем делать рендеринг на CUDA, если для этого есть OpenGL, DirectX?!?!?
Я, знаете ли, говоря о рендеринге и визуализации, НИГДЕ не говорил о Вашем CUDA!
 
Сверху