Интенсивные расчёты на С, а остальное на Яве? Нет, не так!
От: avpavlov  
Дата: 03.12.10 14:38
Оценка: 3 (1) :)
http://ateji.blogspot.com/2010/09/java-for-high-performance-computing.html
Re: Интенсивные расчёты на С, а остальное на Яве? Нет, не та
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.12.10 14:54
Оценка:
Здравствуйте, avpavlov, Вы писали:

A>http://ateji.blogspot.com/2010/09/java-for-high-performance-computing.html


Так им и надо, упёртым сиплюсникам
Re: Интенсивные расчёты на С, а остальное на Яве? Нет, не та
От: okman Беларусь https://searchinform.ru/
Дата: 03.12.10 15:26
Оценка: +6
Здравствуйте, avpavlov, Вы писали:

A>http://ateji.blogspot.com/2010/09/java-for-high-performance-computing.html


За что мы, сишники, так не угодили джавистам ? Что мы им сделали ?
Вот у меня, например, компилятор С++, который генерирует самый быстрый для платформы Intel код.
И что ? Сижу тихо, молчу в тряпочку...
Re[2]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: avpavlov  
Дата: 03.12.10 15:28
Оценка:
O>Вот у меня, например, компилятор С++, который генерирует самый быстрый для платформы Intel код.

Ну этот код ещё написать надо
Re: Интенсивные расчёты на С, а остальное на Яве? Нет, не та
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 03.12.10 15:33
Оценка: +1
Здравствуйте, avpavlov, Вы писали:

A>http://ateji.blogspot.com/2010/09/java-for-high-performance-computing.html


Жду сильный шахматный движок на Java
Re[2]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: avpavlov  
Дата: 03.12.10 15:38
Оценка:
M>Жду сильный шахматный движок на Java

http://www.theserverside.com/discussions/thread.tss?thread_id=61390

Ява идёт туда, где деньги лежат.

In just the past year, we converted a plant (seed) genetic analysis system from C to Java (speeding it up immensely!),

we've seen some big Java projects at CERN,

we've moved several pharma HPC systems to Java (drug and genetic analysis work),

and helped some insurance companies both build out Java-based HPC infrastructure and encapsulate their legacy mainframe systems within a(n) SOA.



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

Суперпроизводительные шахматные программы теперь нужны только нердам, вроде тебя.
Re[3]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 03.12.10 15:55
Оценка:
Здравствуйте, avpavlov, Вы писали:

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

A>Суперпроизводительные шахматные программы теперь нужны только нердам, вроде тебя.

Просто пример интенсивных расчетов. Ок, из игр можно взять го. Сеги в крайнем случае.

Вообще, лично мне такие задачи очень некомфортно решать в терминах Java и других управляемых языков. Ибо вся задача у меня сводится к такому: у меня есть 1 Gb памяти. Например, получен с внешнего устройства (несжатое видео). Его надо обработать. И в терминах указателей это делать оказывается очень удобно.
Re: Интенсивные расчёты на С, а остальное на Яве? Нет, не та
От: Mamut Швеция http://dmitriid.com
Дата: 03.12.10 15:56
Оценка:
A>http://ateji.blogspot.com/2010/09/java-for-high-performance-computing.html

Похжую тему я относительно недавно, вроде, поднимал. Только в контексте баз данных HBase/Cassandra/Neo4j. То есть в том плане, что народ совсем не боится даже базы данных на Java писать — значит с производительностью все в порядке.


dmitriid.comGitHubLinkedIn
Re[4]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: avpavlov  
Дата: 03.12.10 15:59
Оценка:
M>Вообще, лично мне такие задачи очень некомфортно решать в терминах Java и других управляемых языков. Ибо вся задача у меня сводится к такому: у меня есть 1 Gb памяти. Например, получен с внешнего устройства (несжатое видео). Его надо обработать. И в терминах указателей это делать оказывается очень удобно.

Ходить просто по смещению туда/сюда можно и в Яве. Делать типизированное смещение (например, на размер структуры или поля) — ну это нельзя. Ну так в статье и про это было, что большие возможности дают лазейку большому кол-ву ошибок. Я понимаю, что конкретно тебя это не касается, потому что ты никогда не пьянеешь не ошибаешься, но есть и другие программисты, поплоше
Re[4]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: мыщъх США http://nezumi-lab.org
Дата: 03.12.10 16:00
Оценка: -1
Здравствуйте, 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]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.12.10 16:28
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Просто пример интенсивных расчетов. Ок, из игр можно взять го. Сеги в крайнем случае.


Думаешь здесь много пользы от с++ ?

Высокоуровневая оптимизация супротив низкоуровневой

M>Вообще, лично мне такие задачи очень некомфортно решать в терминах Java и других управляемых языков.


Это не "такие" задачи. Например Го нынче вместо пересчета всякой дряни в основном монте-карликами усиливается. Тут по моему языки с GC-должны просто рвать всякие плюсы в хлам.

Если нет завязки на системные вызовы, всякие низкоуровневые операции, большие массивы данных, то у С++ преимуществ как то не видно. С регулярными выражениями С++ уже сливает алгоритмам с GC. Так шта...
Re[5]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 03.12.10 16:38
Оценка: +1 -1
Здравствуйте, avpavlov, Вы писали:

A>Я понимаю, что конкретно тебя это не касается, потому что ты никогда не пьянеешь не ошибаешься, но есть и другие программисты, поплоше


Ошибаюсь, но нахожу и исправляю ошибки. Самое коварные из них, это ошибке в алгоритме. Когда ты разработал и реализовал алгоритм, он работает как надо. Но при разработке ты не учел один нюанс, который все портит. Если бы тут Java помогала А те ошибки, от которых страхует Java, мне не кажутся критическими.

Ну а в целом, как будет выглядеть в Java такое?

uint32_t process_line(unsigned char* line, size_t line_len)
{
  uint32_t acc;
  for(size_t i=0; i<line_len; ++i)
    acc += line[i];
  return acc;
}

unsigned char* data;
process_line(data + offset, some_value);
Re[5]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 03.12.10 16:51
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Высокоуровневая оптимизация супротив низкоуровневой

I>Это не "такие" задачи. Например Го нынче вместо пересчета всякой дряни в основном монте-карликами усиливается. Тут по моему языки с GC-должны просто рвать всякие плюсы в хлам.

Вот в этом не уверен. В чем тут сила GC? У нас, допустим, 1 гигабайт хэша. Который при переборе заполнится на первых секундах. Потом идет задача поиска ненужных узлов и их удаления. На C++ освобождение узла это два присваивания. А в случае с GC у меня такой уверенности нет, потому как деревья получаются там со ссылками друг на друга, часто образующие кольца, ... Так что хотелось бы посмотреть. Хотя бы на просто генератор шахматных ходов на Java.

В целом алгоритмы многих сильнейших шахматных движков после появления движка IPPOLIT сейчас известны, исходники открыты. Потребность в сильнейших шахматных прогах есть у гроссов, особенно ведущих. Топалов перед матчем с Анандов арендовал у Васика 200-ядерный рыбий кластер за $100k за пару недель. Казалось бы, перепиши на Java, получи сильнейший в мире шахматный движок, потешь свое самолюбие, да еще и у проекта есть коммерческая прибыльность. Но тихо все.
Re[6]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: avpavlov  
Дата: 03.12.10 16:57
Оценка: -1 :))
M>Ошибаюсь, но нахожу и исправляю ошибки. Самое коварные из них, это ошибке в алгоритме. Когда ты разработал и реализовал алгоритм, он работает как надо. Но при разработке ты не учел один нюанс, который все портит. Если бы тут Java помогала

Как раз на Яве можно писать алгоритм, а на С++ начинают алгоритм смешивать с битовой и тактовой оптимизацией, из-за чего поддерживать потом будет не просто.

M>Ну а в целом, как будет выглядеть в Java такое?


Да так же и будет, только вместо unsigned char* line будет byte [].

Хотя, конечно, тут ещё надо помнить, что в Яве нет unsigned и надо кастовать к инту

acc += = (0x000000FF & ((int)line[i]));

Но ЖИТ этот шлак соптимизирует ( я надеюсь)
Re[6]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: avpavlov  
Дата: 03.12.10 17:00
Оценка:
M>На C++ освобождение узла это два присваивания.

+ вызов delete (про который ты умолчал)

А если освобождение узла не ведёт к освобождению памяти, то причем тут ГЦ?

M>Казалось бы, перепиши на Java, получи сильнейший в мире шахматный движок, потешь свое самолюбие, да еще и у проекта есть коммерческая прибыльность. Но тихо все.


И жди, когда Топалов ещё 100К накопит, ага.
Re[2]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: Pavel Dvorkin Россия  
Дата: 03.12.10 17:06
Оценка: 3 (1) +3 :))) :))) :))
Здравствуйте, okman, Вы писали:

O>За что мы, сишники, так не угодили джавистам ? Что мы им сделали ?


Все очень просто. Чистая психология. Нувориши всегда завидуют аристократам. И больше всего хотят в глубине своей души — чтообы аристократы их признали равными себе. А те не только равными не признают, но и вообще не воспринимают как равных. Вот это нуворишей и бесит.
With best regards
Pavel Dvorkin
Re[2]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: Тот кто сидит в пруду Россия  
Дата: 03.12.10 17:07
Оценка: +1 :))) :))) :))) :))
Здравствуйте, Mamut, Вы писали:

A>>http://ateji.blogspot.com/2010/09/java-for-high-performance-computing.html


M>Похжую тему я относительно недавно, вроде, поднимал. Только в контексте баз данных HBase/Cassandra/Neo4j. То есть в том плане, что народ совсем не боится даже базы данных на Java писать — значит с производительностью все в порядке.


Не, это значит что со смелостью все в порядке
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[7]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 03.12.10 17:11
Оценка:
Здравствуйте, avpavlov, Вы писали:

A>Как раз на Яве можно писать алгоритм, а на С++ начинают алгоритм смешивать с битовой и тактовой оптимизацией, из-за чего поддерживать потом будет не просто.

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

M>>Ну а в целом, как будет выглядеть в Java такое?

A>Да так же и будет, только вместо unsigned char* line будет byte [].
Я больше про передачу параметров. Как передать указатель в процедуры на середину byte[]
Re[6]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 03.12.10 17:14
Оценка:
Здравствуйте, Mystic, Вы писали:

I>>Это не "такие" задачи. Например Го нынче вместо пересчета всякой дряни в основном монте-карликами усиливается. Тут по моему языки с GC-должны просто рвать всякие плюсы в хлам.


M>Вот в этом не уверен. В чем тут сила GC? У нас, допустим, 1 гигабайт хэша. Который при переборе заполнится на первых секундах. Потом идет задача поиска ненужных узлов и их удаления. На C++ освобождение узла это два присваивания. А в случае с GC у меня такой уверенности нет, потому как деревья получаются там со ссылками друг на друга, часто образующие кольца, ... Так что хотелось бы посмотреть. Хотя бы на просто генератор шахматных ходов на Java.


В Го переборы не работают, т.к. вычислительная сложность несравнимо выше чем в шахматной.

Потому основной метод усиления это всякие монте-карликовые симуляции. Здесь не надо ссылок друг на друга, колец и тд.

M>В целом алгоритмы многих сильнейших шахматных движков после появления движка IPPOLIT сейчас известны, исходники открыты. Потребность в сильнейших шахматных прогах есть у гроссов, особенно ведущих. Топалов перед матчем с Анандов арендовал у Васика 200-ядерный рыбий кластер за $100k за пару недель. Казалось бы, перепиши на Java, получи сильнейший в мире шахматный движок, потешь свое самолюбие, да еще и у проекта есть коммерческая прибыльность. Но тихо все.


Не такой там и бюджет большой, что бы переписывать с нуля достаточно сложную программу.
Re[7]: Интенсивные расчёты на С, а остальное на Яве? Нет, не
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 03.12.10 17:19
Оценка:
Здравствуйте, avpavlov, Вы писали:


M>>На C++ освобождение узла это два присваивания.

A>+ вызов delete (про который ты умолчал)
А зачем delete? Все узлы имеют одинаковый размер. Получаем

struct free_node_t
{
  struct free_node_t* next;
};

free_node_t* free_nodes

node_t* alloc_node()
{
  node_t* ret_value = reinterpret_cast<node_t*>(free_nodes);
  if (free_nodes) free_nodes = free_nodes->next;
  return ret_value;
}

void free_node(node_t* node)
{
  free_node_t* free_node = reinterpret_cast<free_node_t*>(node);
  free_node->next = free_nodes;
  free_nodes = free_node;
}


M>>Казалось бы, перепиши на Java, получи сильнейший в мире шахматный движок, потешь свое самолюбие, да еще и у проекта есть коммерческая прибыльность. Но тихо все.

A>И жди, когда Топалов ещё 100К накопит, ага.
У TOP-игроков есть спонсоры. Плюс есть прослойка адвансеров.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.