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