За что мы, сишники, так не угодили джавистам ? Что мы им сделали ?
Вот у меня, например, компилятор С++, который генерирует самый быстрый для платформы Intel код.
И что ? Сижу тихо, молчу в тряпочку...
Re[2]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
Здравствуйте, avpavlov, Вы писали:
A>А шахматные движки уже больше не интересны никому. Лучших гроссмейстеров уже побили, дальше развиваться некуда A>Суперпроизводительные шахматные программы теперь нужны только нердам, вроде тебя.
Просто пример интенсивных расчетов. Ок, из игр можно взять го. Сеги в крайнем случае.
Вообще, лично мне такие задачи очень некомфортно решать в терминах Java и других управляемых языков. Ибо вся задача у меня сводится к такому: у меня есть 1 Gb памяти. Например, получен с внешнего устройства (несжатое видео). Его надо обработать. И в терминах указателей это делать оказывается очень удобно.
Re: Интенсивные расчёты на С, а остальное на Яве? Нет, не та
Похжую тему я относительно недавно, вроде, поднимал. Только в контексте баз данных HBase/Cassandra/Neo4j. То есть в том плане, что народ совсем не боится даже базы данных на Java писать — значит с производительностью все в порядке.
M>Вообще, лично мне такие задачи очень некомфортно решать в терминах Java и других управляемых языков. Ибо вся задача у меня сводится к такому: у меня есть 1 Gb памяти. Например, получен с внешнего устройства (несжатое видео). Его надо обработать. И в терминах указателей это делать оказывается очень удобно.
Ходить просто по смещению туда/сюда можно и в Яве. Делать типизированное смещение (например, на размер структуры или поля) — ну это нельзя. Ну так в статье и про это было, что большие возможности дают лазейку большому кол-ву ошибок. Я понимаю, что конкретно тебя это не касается, потому что ты никогда не пьянеешь не ошибаешься, но есть и другие программисты, поплоше
Re[4]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
Здравствуйте, Mystic, Вы писали:
M>Здравствуйте, avpavlov, Вы писали:
A>>А шахматные движки уже больше не интересны никому. Лучших гроссмейстеров уже побили, дальше развиваться некуда A>>Суперпроизводительные шахматные программы теперь нужны только нердам, вроде тебя.
M>Просто пример интенсивных расчетов. Ок, из игр можно взять го. Сеги в крайнем случае. M>Вообще, лично мне такие задачи очень некомфортно решать в терминах Java и других управляемых языков.
Если задача типовая, то для Java и управляемых языков зачастую можно найти библиотеки, которых нет на си. скажем, я сам столкнулся, что для решения моих задач есть библиотеки на Java и даже Питоне с Руби, которые делают все, что нужно, а на Си и плюсах -- их нету и там это только предстоит написать.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Re[4]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
Здравствуйте, Mystic, Вы писали:
M>Просто пример интенсивных расчетов. Ок, из игр можно взять го. Сеги в крайнем случае.
Думаешь здесь много пользы от с++ ?
Высокоуровневая оптимизация супротив низкоуровневой
M>Вообще, лично мне такие задачи очень некомфортно решать в терминах Java и других управляемых языков.
Это не "такие" задачи. Например Го нынче вместо пересчета всякой дряни в основном монте-карликами усиливается. Тут по моему языки с GC-должны просто рвать всякие плюсы в хлам.
Если нет завязки на системные вызовы, всякие низкоуровневые операции, большие массивы данных, то у С++ преимуществ как то не видно. С регулярными выражениями С++ уже сливает алгоритмам с GC. Так шта...
Re[5]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
Здравствуйте, avpavlov, Вы писали:
A>Я понимаю, что конкретно тебя это не касается, потому что ты никогда не пьянеешь не ошибаешься, но есть и другие программисты, поплоше
Ошибаюсь, но нахожу и исправляю ошибки. Самое коварные из них, это ошибке в алгоритме. Когда ты разработал и реализовал алгоритм, он работает как надо. Но при разработке ты не учел один нюанс, который все портит. Если бы тут Java помогала А те ошибки, от которых страхует Java, мне не кажутся критическими.
Здравствуйте, Ikemefula, Вы писали:
I>Высокоуровневая оптимизация супротив низкоуровневой I>Это не "такие" задачи. Например Го нынче вместо пересчета всякой дряни в основном монте-карликами усиливается. Тут по моему языки с GC-должны просто рвать всякие плюсы в хлам.
Вот в этом не уверен. В чем тут сила GC? У нас, допустим, 1 гигабайт хэша. Который при переборе заполнится на первых секундах. Потом идет задача поиска ненужных узлов и их удаления. На C++ освобождение узла это два присваивания. А в случае с GC у меня такой уверенности нет, потому как деревья получаются там со ссылками друг на друга, часто образующие кольца, ... Так что хотелось бы посмотреть. Хотя бы на просто генератор шахматных ходов на Java.
В целом алгоритмы многих сильнейших шахматных движков после появления движка IPPOLIT сейчас известны, исходники открыты. Потребность в сильнейших шахматных прогах есть у гроссов, особенно ведущих. Топалов перед матчем с Анандов арендовал у Васика 200-ядерный рыбий кластер за $100k за пару недель. Казалось бы, перепиши на Java, получи сильнейший в мире шахматный движок, потешь свое самолюбие, да еще и у проекта есть коммерческая прибыльность. Но тихо все.
Re[6]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
M>Ошибаюсь, но нахожу и исправляю ошибки. Самое коварные из них, это ошибке в алгоритме. Когда ты разработал и реализовал алгоритм, он работает как надо. Но при разработке ты не учел один нюанс, который все портит. Если бы тут Java помогала
Как раз на Яве можно писать алгоритм, а на С++ начинают алгоритм смешивать с битовой и тактовой оптимизацией, из-за чего поддерживать потом будет не просто.
M>Ну а в целом, как будет выглядеть в Java такое?
Да так же и будет, только вместо unsigned char* line будет byte [].
Хотя, конечно, тут ещё надо помнить, что в Яве нет unsigned и надо кастовать к инту
acc += = (0x000000FF & ((int)line[i]));
Но ЖИТ этот шлак соптимизирует ( я надеюсь)
Re[6]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
А если освобождение узла не ведёт к освобождению памяти, то причем тут ГЦ?
M>Казалось бы, перепиши на Java, получи сильнейший в мире шахматный движок, потешь свое самолюбие, да еще и у проекта есть коммерческая прибыльность. Но тихо все.
И жди, когда Топалов ещё 100К накопит, ага.
Re[2]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
Здравствуйте, okman, Вы писали:
O>За что мы, сишники, так не угодили джавистам ? Что мы им сделали ?
Все очень просто. Чистая психология. Нувориши всегда завидуют аристократам. И больше всего хотят в глубине своей души — чтообы аристократы их признали равными себе. А те не только равными не признают, но и вообще не воспринимают как равных. Вот это нуворишей и бесит.
With best regards
Pavel Dvorkin
Re[2]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
Здравствуйте, Mamut, Вы писали:
A>>http://ateji.blogspot.com/2010/09/java-for-high-performance-computing.html
M>Похжую тему я относительно недавно, вроде, поднимал. Только в контексте баз данных HBase/Cassandra/Neo4j. То есть в том плане, что народ совсем не боится даже базы данных на Java писать — значит с производительностью все в порядке.
Не, это значит что со смелостью все в порядке
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[7]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
Здравствуйте, avpavlov, Вы писали:
A>Как раз на Яве можно писать алгоритм, а на С++ начинают алгоритм смешивать с битовой и тактовой оптимизацией, из-за чего поддерживать потом будет не просто.
Обратной стороной проблемы является тот факт, что если на задумываться об оптимизации вначале, то часто код можно будет только переписать заново.
M>>Ну а в целом, как будет выглядеть в Java такое? A>Да так же и будет, только вместо unsigned char* line будет byte [].
Я больше про передачу параметров. Как передать указатель в процедуры на середину byte[]
Re[6]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
Здравствуйте, Mystic, Вы писали:
I>>Это не "такие" задачи. Например Го нынче вместо пересчета всякой дряни в основном монте-карликами усиливается. Тут по моему языки с GC-должны просто рвать всякие плюсы в хлам.
M>Вот в этом не уверен. В чем тут сила GC? У нас, допустим, 1 гигабайт хэша. Который при переборе заполнится на первых секундах. Потом идет задача поиска ненужных узлов и их удаления. На C++ освобождение узла это два присваивания. А в случае с GC у меня такой уверенности нет, потому как деревья получаются там со ссылками друг на друга, часто образующие кольца, ... Так что хотелось бы посмотреть. Хотя бы на просто генератор шахматных ходов на Java.
В Го переборы не работают, т.к. вычислительная сложность несравнимо выше чем в шахматной.
Потому основной метод усиления это всякие монте-карликовые симуляции. Здесь не надо ссылок друг на друга, колец и тд.
M>В целом алгоритмы многих сильнейших шахматных движков после появления движка IPPOLIT сейчас известны, исходники открыты. Потребность в сильнейших шахматных прогах есть у гроссов, особенно ведущих. Топалов перед матчем с Анандов арендовал у Васика 200-ядерный рыбий кластер за $100k за пару недель. Казалось бы, перепиши на Java, получи сильнейший в мире шахматный движок, потешь свое самолюбие, да еще и у проекта есть коммерческая прибыльность. Но тихо все.
Не такой там и бюджет большой, что бы переписывать с нуля достаточно сложную программу.
Re[7]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
M>>Казалось бы, перепиши на Java, получи сильнейший в мире шахматный движок, потешь свое самолюбие, да еще и у проекта есть коммерческая прибыльность. Но тихо все. A>И жди, когда Топалов ещё 100К накопит, ага.
У TOP-игроков есть спонсоры. Плюс есть прослойка адвансеров.