Модераторы: LSD

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужен ли С++ 
:(
    Опции темы
Фантом
Дата 20.9.2009, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: нет
Всего: 49



Цитата(GoldFinch @  20.9.2009,  16:21 Найти цитируемый пост)

насчет возможностей шаблонов, вот такой код тоже невозможен на С++ ?


Мы, по-моему, немного зациклились. Возможен, конечно, только эффективность...
PM   Вверх
kemiisto
Дата 20.9.2009, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Цитата(Фантом @  20.9.2009,  17:26 Найти цитируемый пост)
Вот-вот, это одна из лучших реализаций этой идеи. Она очень неплоха, но все-таки в серьезных вычислениях используют не ее. 

Не спорю. Сам именно так её и использую.


--------------------
PM MAIL WWW GTalk Jabber   Вверх
W4FhLF
Дата 20.9.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 2
Всего: 121



Цитата(Фантом @  20.9.2009,  14:54 Найти цитируемый пост)
Эта идея, конечно, частично спасает положение. Правда, ниоткуда не следует, что  W4FhLF ее реализовал


Реализовал. Только не то, что описал zim22. Я сделал перегрузку тринарных операторов. Получается нечто вроде замыканий. Сделал для A*B*D и A*B+D т.к. у меня эти операции используются в 90% случаев. Хотя можно сделать для любого выражения. 

Однако, если уж говорить об оптимизации, то накладные расходы не превышают 15%.

Цитата(Фантом @  20.9.2009,  14:54 Найти цитируемый пост)
W4FhLF реализовал ее более эффективно, чем разработчики какого-нибудь IFC,

Цитата(Фантом @  20.9.2009,  14:37 Найти цитируемый пост)
Очень громоздко, правда? 


Возможно здесь уже все забыли. Но я класс с матрицами привёл по просьбе показать пример "С vs C++". И речь идёт о реализации собственных решений. У меня и в мыслях нет тягаться с ребятами из Intel или реализациями из BLAS какого-нибудь. Класс матрица просто "удачно" вспомнился. 

Мне интересно. Что будет с оптимизацией накладных расходов в твоём примере на фортране? И что будет, когда ты выйдешь за рамки стандартного, оптимизированного для конкретного компилятора (IFC), функционала?

Цитата(kemiisto @  20.9.2009,  16:04 Найти цитируемый пост)
Я мало знаком с Fortran'ом (но я исправлюсь  ), но я бы тоже не стал вычислительную задачу на ++ решать. Тем более, свой велосипед изобретать...


Дело не в велосипеде. Изначально речь шла о удобстве использования собственных решений. Вот допустим оператор перемножения матриц у меня достаточно сложный и его поведение определяется размером матриц:

1. До 50000 элементов. Классическое умножение.
2. От 50000 до 2000000 элементов используется перемножение с более эффективным использованием кеша(одна матрица транспонируется и т.к. они у меня хранятся линейно, я прохожусь по обеим матрицами последовательно, что позволяет эффективно использовать кеш процессора) и векторизацией вычислений(сразу умножается от 4х до 16 элементов). 
3. От 2000000 элементов. Вычисления переносятся на GPU. 

Никто не мешает использовать другие процедуры, из сторонних библиотек в том числе. Важно, что внешне как есть A * B, так и остаётся.


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
kemiisto
Дата 20.9.2009, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



W4FhLF, дошло до меня. Тему, видимо, разбили. Отсюда утекло что-ли? Я уже отвечал в новой теме, с новым названием. =)

Это сообщение отредактировал(а) kemiisto - 20.9.2009, 17:04


--------------------
PM MAIL WWW GTalk Jabber   Вверх
mes
Дата 20.9.2009, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(kemiisto @  20.9.2009,  15:28 Найти цитируемый пост)
Ну, ну. Притормози. Теперь тоже самое, без буста, на стандартном С++. 

C++0x не за горами smile


--------------------
PM MAIL WWW   Вверх
Фантом
Дата 20.9.2009, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вы это прекратите!
***


Профиль
Группа: Участник Клуба
Сообщений: 1516
Регистрация: 23.3.2008

Репутация: нет
Всего: 49



Цитата(W4FhLF @  20.9.2009,  16:51 Найти цитируемый пост)
Реализовал. Только не то, что описал zim22. Я сделал перегрузку тринарных операторов. Получается нечто вроде замыканий. Сделал для A*B*D и A*B+D т.к. у меня эти операции используются в 90% случаев. Хотя можно сделать для любого выражения. 


Хорошо. Но все-таки, на мой взгляд, игра не стоила свеч.

Цитата(W4FhLF @  20.9.2009,  16:51 Найти цитируемый пост)

Возможно здесь уже все забыли. Но я класс с матрицами привёл по просьбе показать пример "С vs C++".


Так ведь я цеплялся именно к этому конкретному примеру. smile 
Цитата(W4FhLF @  20.9.2009,  16:51 Найти цитируемый пост)

Мне интересно. Что будет с оптимизацией накладных расходов в твоём примере на фортране? И что будет, когда ты выйдешь за рамки стандартного, оптимизированного для конкретного компилятора (IFC), функционала?


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

Цитата(W4FhLF @  20.9.2009,  16:51 Найти цитируемый пост)

Дело не в велосипеде. Изначально речь шла о удобстве использования собственных решений. Вот допустим оператор перемножения матриц у меня достаточно сложный и его поведение определяется размером матриц:


Конечно, так тоже можно. В конце концов, можно просто написать обвязку для того же LAPACK и радоваться. Но тогда возникает другая проблема - сложность разработки и поддержки всего этого. 

Если вернуться к исходному вопросу, то бессмысленно спорить с тем, что C++ язык универсальный и очень мощный. И сделать на нем можно все. Но далеко не всегда это рационально.
PM   Вверх
kemiisto
Дата 20.9.2009, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Цитата(mes @  20.9.2009,  18:20 Найти цитируемый пост)
C++0x не за горами

 smile 
mes, Вы, блин все как в вакууме сферическом живёте, ей богу. На календарь посмотри. 0x... smile Уже сам Страуструп смирился...


--------------------
PM MAIL WWW GTalk Jabber   Вверх
GoldFinch
Дата 20.9.2009, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



kemiisto, а чем буст не стандартный С++ ? в нем все средствами языка реализовано
PM MAIL ICQ   Вверх
kemiisto
  Дата 20.9.2009, 17:43 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Цитата(GoldFinch @  20.9.2009,  18:28 Найти цитируемый пост)
kemiisto, а чем буст не стандартный С++ ? в нем все средствами языка реализовано 

Если возвращаться к теме обсуждения и к примеру, приведённому W4FhLF'ом то надо чётко понимать разницу между фичей на уровне библиотек и фичей на уровне языка. boost - сторонняя библиотека. А мы обсуждаем язык.

То, что, скажем в Fortran, дадено на уровне языка, можно реализовать на С++, используя шаблоны. Или уже реализовано и нужно только воспользоваться. Но! Сторонние библиотеки - это дополнительный объём кода, в т.ч. и объектного, дополнительный API, который надо изучить, дополнительные трудности с установкой/настройкой. А с точки зрения разработчика библиотеки - дополнительные трудозатраты. И в случае С++ ой какие не малые. Язык убожество полное. Дрянь. А шаблоны - no comments. Какой смысл, скажем, от BGL (пытался тут потрогать), если чтоб её использовать С++ надо лет 5-10 изучать? Кому нужно-то такое? А шаблонный код на ++ - это нечто. Perl нервно курит в сторонке. Зато да, крутость то как возрастает, когда говоришь, шаблоны, обобщённое программирование. Аж в штанах тяжелеет. smile Наверное...

Это сообщение отредактировал(а) kemiisto - 20.9.2009, 17:44


--------------------
PM MAIL WWW GTalk Jabber   Вверх
GoldFinch
Дата 20.9.2009, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



kemiisto, вот лежит у меня книжка про BGL, гдето 300 страниц
у нее небольшая вводная часть про обобщенное программироваие, гдето 50 страниц, и там впринципе все что надо знать про ОП на С++
чтобы использовать С++
я использую С++ меньше года, и мне не надо было 5-10 лет, чтобы изучить С++ до уровня достаточного для понимания как использовать BGL

большинство библиотек в бусте header only, они не содержат и не генерят лишний объектный код.
встроенные средства языка типа Fortran генерируют не меньше кода, чем код получаемый при компиляции библиотек C++

жесткие встроенные средства не лучше чем гибкие возможности реализовать те же средства на уровне библиотек

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

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


Это сообщение отредактировал(а) GoldFinch - 20.9.2009, 18:42
PM MAIL ICQ   Вверх
kemiisto
  Дата 20.9.2009, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Цитата(GoldFinch @  20.9.2009,  19:41 Найти цитируемый пост)
я использую С++ меньше года, и мне не надо было 5-10 лет, чтобы изучить С++ до уровня достаточного для понимания как использовать BGL

Тут 2 варианта: ты либо гений, либо врун. Я даже расписывать не хочу. Что называется, не надо ла-ла. Меньше года и уже понимать многое в шаблонах... Нет... Или гений. А я вот туповат, видимо. smile 

Цитата(GoldFinch @  20.9.2009,  19:41 Найти цитируемый пост)
жесткие встроенные средства не лучше чем гибкие возможности реализовать те же средства на уровне библиотек

Верно в общем случае. Абсолютно никакого отношения не имеет к предмету обсуждения - С++. Этот мультипарадигменный многоязык содержит тонны ненужного хлама. И будет содержать ещё больше. Очень много нужно вынести на уровень библиотек. И тогда тезис станет верным и для С++.

Цитата(GoldFinch @  20.9.2009,  19:41 Найти цитируемый пост)
с шаблонами все нормально. я их постоянно юзаю, ничего плохого в них не вижу, надо просто потратить время на их изучение.

Извини, у меня этого времени нет. Совсем нет. И я не чувствую, что получу практическую выгоду от знания этой фичи. У меня длине станет? smile 


--------------------
PM MAIL WWW GTalk Jabber   Вверх
GoldFinch
Дата 20.9.2009, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



насчет С++ vs С vs all

http://forum.vingrad.ru/index.php?showtopi...t&p=1943034

в этом посте сравнивается код на С с обобщенным кодом С++
приводятся замеры времени выполнения и дизасмы
результаты практически одинаковы

приведите время выполнения такого же кода например на Fortran и его дизасм

Добавлено через 13 минут и 52 секунды
kemiisto, насчет гений\врун  - посмотри мои посты на этом форуме
я тут зарегился когда только начал писать на С\С++ (в начале больше на С чем на С++)
PM MAIL ICQ   Вверх
kemiisto
Дата 20.9.2009, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дикий Кот. =^.^=
****
Награды: 1



Профиль
Группа: Участник Клуба
Сообщений: 3292
Регистрация: 29.7.2007

Репутация: 3
Всего: 160



Цитата(GoldFinch @  20.9.2009,  19:51 Найти цитируемый пост)
kemiisto, насчет гений\врун  - посмотри мои посты на этом форуме
я тут зарегился когда только начал писать на С\С++ (в начале больше на С чем на С++) 

Ты ещё про scaling factor не забывай. Программы пишут не только программисты. А в случае прикладного ПО и не столько программисты. Времени на изучение С++ и борьбу с его ублюдочным синтаксисом и прочими "фичами" у них нет. И желания нет. У них мужское начало проявляется в другой форме. Там по-другому меряются. smile 

Цитата(GoldFinch @  20.9.2009,  19:51 Найти цитируемый пост)
в этом посте сравнивается код на С с обобщенным кодом С++
приводятся замеры времени выполнения и дизасмы
результаты практически одинаковы

Меня не интересуют синтетические тесты. Пока я вижу в области, которая мне интересна, практически полное доминирование Fortran'а. Значит не просто так...


--------------------
PM MAIL WWW GTalk Jabber   Вверх
Леопольд
Дата 20.9.2009, 20:20 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: нет
Всего: 13



Цитата(NightmareZ @  20.9.2009,  14:52 Найти цитируемый пост)
Хорошо, давай я пишу твою задачу на C++, а ты мою на лиспе. Ок?

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

bitset<1024> bits(raw_data);
bits[0] = bits[1023];
bits = (bits << 10) | (bist >> 1024-10);
std::cout<<bits<<std::endl;



Цитата(NightmareZ @  20.9.2009,  14:52 Найти цитируемый пост)
Тогда расскажи, пожалуйста, чем ООП в Лиспе лучше или хуже ООП в С++. Хотелось бы увидеть от тебя хотя бы немного конкретики а не юморески про какашки.

ООП - оно и в африке ООП.
Лисп действительно мультипарадигменный язык, в отличие, от C++. Это раз.
Лисп проще, чем C++, но при этом гибче. Это два.
Пока достаточно.

Недостаточно. В каждом языке своё представление как это должно работать. Я спрашиваю в третий раз, чем поддержка ООП в Лиспе мощнее чем поддержка ООП в С++? Пока что ты ограничиваешься лишь общими фразами. Может ответишь на вопрос?
Ты утверждаешь что Лисп гибче, так объясни чем он гибче, пока что ни одного примера его большей гибкости я не видел. Может я решу что стоит Лисп изучить...

Это сообщение отредактировал(а) Леопольд - 20.9.2009, 20:33


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
GoldFinch
Дата 20.9.2009, 20:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: нет
Всего: 26



kemiisto, если у тебя проблемы с изучением С++, то это твои проблемы, а не языка.
ты - не показатель.
PM MAIL ICQ   Вверх
Страницы: (9) Все « Первая ... 5 6 [7] 8 9 
Ответ в темуСоздание новой темы Создание опроса
Правила ведения Религиозных войн
Smartov
1. Уважайте собеседника
2. Собеседник != враг
3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez"

С уважением, Smartov.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Религиозные войны | Следующая тема »


 




[ Время генерации скрипта: 0.1032 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.