|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
|
|
Сравнение скорости вычислений с# с Fortran07.06.2016, 10:19. Показов 4759. Ответов 52
Метки нет (Все метки)
Сделал сравнение скорости расчетов при умножении матриц в с# и в Фортране.
В с# производились вычисления последовательно и параллельно. В Фортране - последовательно. Получил драматическую разницу в результатах: - последовательный расчет с# - 776 мс; - параллельный расчет с# - 245 мс; - последовательный расчет Фортран - 64 мс. Для интересующихся приложил проект, может я где то ошибся. Меня этот вопрос очень интересует, раздумывал, может целиком перебраться в c#. Для компиляции Фортрана использовался Интел Фортран
0
|
|
| 07.06.2016, 10:19 | |
|
Ответы с готовыми решениями:
52
Сравнение скорости вычислений с# и С++ Что лучше использовать для научных математических вычислений: С++ или Fortran? Сравнение времен вычислений |
|
71 / 58 / 31
Регистрация: 05.09.2013
Сообщений: 666
|
|
| 07.06.2016, 10:24 | |
|
У меня такой результат..
0
|
|
|
71 / 58 / 31
Регистрация: 05.09.2013
Сообщений: 666
|
|
| 07.06.2016, 10:30 | |
|
А из-под отладки те еще тормоза..
Добавлено через 3 минуты PS: Возможно тот результат - случайность. Сейчас получаю результаты 76 для "параллельного C#" и 58 для Фортрана. По моему, достойный результат
0
|
|
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
|
|
| 07.06.2016, 10:32 [ТС] | |
|
результаты 76 для "параллельного C#" и 58 для Фортрана
да, результат вполне себе ничего, но почему то у меня c# притормаживает
0
|
|
|
71 / 58 / 31
Регистрация: 05.09.2013
Сообщений: 666
|
|
| 07.06.2016, 10:33 | |
|
А по железу как?
0
|
|
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
|
|
| 07.06.2016, 10:38 [ТС] | |
|
железо у меня старое: ОЗУ - 8 гб, проц - i7-3770 СПУ 3.4 GHz, система 64 разрядная
0
|
|
|
71 / 58 / 31
Регистрация: 05.09.2013
Сообщений: 666
|
|
| 07.06.2016, 10:40 | |
|
ну... у меня i7-4790 (3,6 GHz на ядро). Винда 8.1. Может тут какие особенности
0
|
|
|
141 / 117 / 26
Регистрация: 07.12.2014
Сообщений: 371
|
|
| 07.06.2016, 10:51 | |
|
Замерять Stopwatchem производительность это очень некорректно. Попробуйте так
0
|
|
|
71 / 58 / 31
Регистрация: 05.09.2013
Сообщений: 666
|
|
| 07.06.2016, 10:53 | |
|
А почему некорректно, если не секрет?
0
|
|
|
141 / 117 / 26
Регистрация: 07.12.2014
Сообщений: 371
|
|
| 07.06.2016, 10:57 | |
|
halk0812, потому что это управляемая среда и jit компиляция. Даже грубо говоря второй запуск метода будет быстрее первого по причине того, что в первый раз метод перед вызовом сначала будет скомпилирован jit'ом и только потом управление перейдёт в целевой метод. И таких тонкостей много
0
|
|
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
|
|
| 07.06.2016, 11:55 [ТС] | |
|
кстати, если для компиляции фортрана поставить опцию /Qparallel - компилер сам распараллеливает задачу, время выполнения фортрана становится равным 26 мс
0
|
|
|
71 / 58 / 31
Регистрация: 05.09.2013
Сообщений: 666
|
|
| 07.06.2016, 11:56 | |
|
мдя... не в пользу c#... хотя его никто и не позиционировал как средство для быстрых вычислений
0
|
|
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
|
|
| 07.06.2016, 12:11 [ТС] | |
|
я как то не ожидал что настолько не быстрые, вернее будет сказать - очень медленные
0
|
|
|
14316 / 9402 / 1355
Регистрация: 21.01.2016
Сообщений: 35,461
|
||||||
| 07.06.2016, 12:38 | ||||||
|
afront, ты, конечно же, в курсе, что фортран двухмерные массивы в памяти располагает по столбцам, а C# по строкам?
Добавлено через 1 минуту Вот такой код на шарпе будет на каждой итерации создавать кеш-промах:
1
|
||||||
|
141 / 117 / 26
Регистрация: 07.12.2014
Сообщений: 371
|
|
| 07.06.2016, 12:44 | |
|
Usaga, какой знакомый пример))Видел его у Гольдштейна и Акиньшина)) И правда, очень верно подмечено. Как говорится инструмент не виноват, что его неправильно используют
0
|
|
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
|
|
| 07.06.2016, 12:45 [ТС] | |
|
вроде как в курсе, собственно для этого и создал копии массивов, чтобы их передать в фортран,
а в шарпе используются другие массивы
0
|
|
|
14316 / 9402 / 1355
Регистрация: 21.01.2016
Сообщений: 35,461
|
|
| 07.06.2016, 13:01 | |
|
afront, в любом случае, нужно сначала сделать "холодный" прогон, чтобы JIT успел подготовить код. И уже потом делать "реальные" замеры, а то как-то не очень честно получается
0
|
|
|
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,631
|
|
| 07.06.2016, 14:40 [ТС] | |
|
Usaga, можно зациклить тесты, скажем прогнать их 10 раз, результат сильно не изменится
Добавлено через 1 час 22 минуты "Зацикленный" тест(10 циклов для разогрева JIT) выдал следующие результаты: - последовательный расчет с# - 892 мс; - параллельный расчет с# - 205 мс; - последовательный расчет Фортран(с опцией /Qparallel)- 23 мс. Разница в скорости "последовательного" расчета с# и Фортран ~ 40. Разница в скорости "параллельного" расчета с# и "последовательного" расчета Фортран ~ 9.
0
|
|
|
14316 / 9402 / 1355
Регистрация: 21.01.2016
Сообщений: 35,461
|
|
| 07.06.2016, 15:24 | |
|
Да, тут уж ничего не поделать)) C# не про скоростные вычисления
0
|
|
|
71 / 58 / 31
Регистрация: 05.09.2013
Сообщений: 666
|
||
| 07.06.2016, 15:25 | ||
0
|
||
| 07.06.2016, 15:25 | |
|
Помогаю со студенческими работами здесь
20
Сравнение результата вычислений 8-, 12-, 16-битной вычислительных систем в Mathcad Сравнение скорости Сравнение скорости Сравнение скорости работы Qt и C++ Сравнение скорости сходимости Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|