Открыть список
Как стать автором
Обновить

Комментарии 18

А на сколько в java по сравнению с C производительность теряется?
Примерно в 1-1.5 раз в случае с целыми числами и 1.5-2 — плавающими.
Этому вопросу отдельный пост будет посвящён с более оптимизированными программами (что очень важно, так как в этой программе на Java не использованы потоки, а они способны резко увеличить производительность), графиками и диаграммами.
А ничего, что у вас кода примерно одинаковое количество получилось в любом случае? В случае с расчётными задачами, насколько мне приходилось с ними встречаться, основная проблема — это далеко не выделение памяти, а правильное использование и реализация алгоритмов и последующая их проверка. К тому же, Си (и C++) очень даже удобны для решения подобных задач, и использование Java тут количество кода и сложность работы не сокращает.
Данные посты несут только одну цель — показать, что есть ещё один инструмент для решения проблем. Данным инструментом пользуются в своих исследованиях люди зарубежом, значит, они это как-то обосновывали.
Код на Java интуитивно более понятен, нежели на Си. ИМХО.

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

А можно поподробнее, каким стандартам Java не соответствует? А то я знаю только IEEE 754, с которым у Java все в порядке.
Ну, а про несправедливость микробенчмарков на Java можно даже не говорить, настолько это распространенная ошибка.
> А то я знаю только IEEE 754, с которым у Java все в порядке.

А зачем в Java ключевое слово strictfp знаете? Вот как раз для строгого соответствия. Но всё равно согласен, заявление автора в целом неверно.
Спасибо за уточнение, убрал.
«проблемы с вычислениями чисел с плавающей запятой» — не лучше.
как тогда? «неоднозначность вычислений»? :-)
Никак. Это настолько непринципиальная для большинства задач тонкость, что даже компиляторы Си и Си++ делают точно так же. google: icc fp model strict.
Уберите вообще про проблемы. Нет там таких проблем. Проблемы могут быть только у программистов, делающих неверные допущения. Как уже было отмечено, модификатор strictfp обязует JVM производить вычисления в точности по стандарту. Без него результаты представляются с той точностью, которую обеспечивает FPU, что вполне естественно.
Ни java, ни C в данном случае не используют SSE? То есть ещё в 2-3 раза медленее, чем могло было бы быть.
Именно. Если есть дополнение, как сделать это по-умному, то был бы очень рад почитать!
Данный пост является краткой выжимкой из статьи «Java for High Performance Computing», которая будет представлена мной на университетской конференции Томского Политехнического.


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


Взаимоисключающие параграфы. Вы просто взяли инструмент, протестировали его на работоспособность (даже не применили; применили — это если бы задача была не детская), и уже — статья!
Хорошо, пусть будет так. Однако я мониторю по долгу работы и из интереса научные конференции в России и вижу, что подобные прикладные статьи, решающие, возможно, детскую (хотя не каждый взрослый или студент скажет, что такое скалярное произведение векторов) задачу, более востребованы, нежели имеющие в крайней степени узкую область. В конце концов, я не являюсь сколь бы то ни было учёным (о чем написано в профиле), и мои статьи на наши конференции являются исключительно прикладными и информационными. За них я уже получал благодарности от наших учёных, которым эти статьи помогли. Только поэтому я ещё пишу их :-)

Извиняюсь, если вы потратили своё время на прочтение бесполезного материала. Я даже рад, ведь чем больше людей, понимающих тему, от которой я фанатею, тем лучше!

хотя не каждый взрослый или студент скажет, что такое скалярное произведение векторов


Позвольте уточнить, студент технической специальности? Если да, то считаете ли вы это нормальным? Так можно и «статьи» про «что такое комплексные числа» писать, всё равно большинство людей не понимает, что это такое.
К огромному моему сожалению, но да. Обратите внимание на общее снижение интереса к науке — на конференциях стало меньше людей, на летние школы всё чаще протаскивают не реальных учёных, а «своих», и так далее.
Статьи про комплексные числа есть и на русском и на английском. Про параллельные вычисления с реальными, хоть и детскими, примерами — по пальцам можно пересчитать. Отсюда и пляшем. В общем-то, я никакой выгоды от этих статей кроме писульки в резюме не получаю, а раз научрук сказал, что это стоит заслать на конференцию как статью, то надо заслать.
Да, я не считаю это нормальным. Это очень плохо. С другой стороны, тем, кто хоть что-то делает, будет больше работы.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.