2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: Использовать lapack в C#
Сообщение27.12.2022, 09:18 
ilghiz

У вас каша в голове. Я занимаюсь этими задачами профессионально и у меня не одна статья, посвященная этой проблеме. Intel MKL до сих пор не справился с двумя проблемами в диагонализации вещественных симметричных матриц, а решение третьей проблемы своровал у меня. Что касается фортрана, то он развивается и у вас о нем пещерные представления. Например, в США он популярен (в 90-ые годы работал в университете Буффало и сейчас со многими поддерживаю контакты, так что знаю об этом не понаслышке). Весь код, написанный в LAPACK НА 77-ом фортране (а он почти весь на нем) при помощи f2c переводится в сишный код.

 
 
 
 Re: Использовать lapack в C#
Сообщение27.12.2022, 10:35 
Я был удивлен когда недавно узнал что существуют во первых современные стандарты фортрана а во вторых он по скорости практически тоже самое что и Си. Так как написанное работает хорошо и с той же скоростью, видимо никто и не стремится что то переделывать.

 
 
 
 Re: Использовать lapack в C#
Сообщение27.12.2022, 14:43 
traffic_lights

рад, что вы занимаетесь этими задачами профессионально, я, кстати тоже, причем к лапаку имею непосредственное отношение, так как в 90-е участвовал в оптимизации бласов для Y-MP, C90, T3D, а в начале двухтысячных - участвовал в написании кубласов (это которые для Нвидии).

Цитата:
Весь код, написанный в LAPACK НА 77-ом фортране (а он почти весь на нем)...


Вот тут вы ошибаетесь, сам лапак - в большей части - да, еще на фортране, а вот бласы (если хочется иметь оптимизированный вариант) уже никто никогда не пишет на фортране, я вас уже отсылал к ATLASу, не поленитесь взглянуть в его исходники, и с удивлением увидите, что и холецкого переписали, и линейные системы, вот до сингулярного все никак не дойдут.

Цитата:
Весь код, написанный в LAPACK НА 77-ом фортране (а он почти весь на нем) при помощи f2c переводится в сишный код.


и производительность после этого идет в то самое место - основная идея Фортрана, которая до сих пор держит его на плаву - возможность разбить одномерный массив на двухмерный на входе в подпрограмму и оптимально считать индексы. Если вы сделаете f2c, то у компилятора эта информация потеряется, поэтому он не может (не имеет права) оптимизировать, и производительность падает.

-- 27.12.2022, 13:49 --

Schrodinger's cat в сообщении #1575197 писал(а):
Я был удивлен когда недавно узнал что существуют во первых современные стандарты фортрана а во вторых он по скорости практически тоже самое что и Си. Так как написанное работает хорошо и с той же скоростью, видимо никто и не стремится что то переделывать.


У фортрана есть хорошая особенность - вы можете на вход функции подать одномерный массив и внутри функции трактовать этот массив как 2-х, 3-х и тд мерный массив, отдав на откуп компилятору оптимизацию индексов. Это позволяет сильно упростить угадывание кеш-мисс и сильно упрощает визуальное восприятие алгоритма. В классическом С такой возможности не было, поэтому С часто проигывал на матричных задачах Фортрану.

В 99-ом Сшники опомнились и ввели эту конструкцию в стандарт С, в С++ ее до сих пор нет, но там можно за счет темплейтов сделать аналогичное, хотя криво.

 
 
 
 Re: Использовать lapack в C#
Сообщение27.12.2022, 17:11 
Я и думаю, откуда питоновский NumPy такого нахватался.
Когда я писал свой первый модуль под питон никак не мог понять а где же 2х, 3х и т.д. мерные массивы :D

 
 
 
 Re: Использовать lapack в C#
Сообщение27.12.2022, 22:29 
Schrodinger's cat

Еще не так давно си уступал фортрану значительно (до нескольких раз) по скорости: пара порций компилятора и си можно опустить на доисторический уровень. Популярность фортрана в развитых странах объясняется двумя причинами: значительным заделом, скоростью и легкостью изучения. Людям научного труда некогда тратить время на изучение тонкостей языка си: почитайте, сколько копий было сломано по его поводу на этом форуме У нас пока время еще слабо ценят: очень много "бла-бла-бла". Вон, например, уже в C++20 вместо #include <iostream> появилось import <iostream>.

ilghiz
ilghiz в сообщении #1575220 писал(а):
и производительность после этого идет в то самое место - основная идея Фортрана, которая до сих пор держит его на плаву - возможность разбить одномерный массив на двухмерный на входе в подпрограмму и оптимально считать индексы. Если вы сделаете f2c, то у компилятора эта информация потеряется, поэтому он не может (не имеет права) оптимизировать, и производительность падает.

Что за бред: посмотрите сишные версии 3-тьей версии ЛАПАКА: они получены при помощи f2c - одномерные массивы остаются одномерными и скорость на современных сишных компиляторах совпадает со скоростью фортрановских аналогов. На опровержение остальных ваших крайне непрофессиональных утверждений у меня нет ни времени, ни желания отвечать.

 
 
 
 Re: Использовать lapack в C#
Сообщение28.12.2022, 04:18 
traffic_lights в сообщении #1575262 писал(а):
Что за бред... На опровержение остальных ваших крайне непрофессиональных утверждений у меня нет ни времени, ни желания отвечать.

Да, видно, что вы - очень большой профессионал! Наверное мне и всем нам надо у вас поучиться. Дайте, пожалуйста, DOI ваших статей, в которых, как вы ранее утверждали, вы придумали результаты, которые Интел без зазрения совести у вас скопировал и вставил в MKL. Кстати, статьи - это же не патенты, изпользовать результаты научных трудов никому не возброняется, не так ли, или все-таки у вас были патенты, которые Интел нарушил? Тогда номерки патентов в студию.

-- 28.12.2022, 03:43 --

traffic_lights в сообщении #1575262 писал(а):
Популярность фортрана в развитых странах

Германию и США я причисляю к развитым странам, но по поисковым системам монстера и индида примерно на 10 тысяч вакансий приходится всреднем три вакансии, где желательно знание фортрана, к сожалению, обычно для того, чтобы понять, что на нем было когда-то написано. А все остальные 10 тысяч - это С, С++, питон и их аналоги.

Применительно к лапаку, именно нетлибовскому лапаку, а не его оптимизированных клонов как то AOCL, ATLAS, GotoBLAS, сам лапак до сих пор еще не переписали с Фортрана на С только из-за личной неприязни Джека Донгарры к С, он мне сам это лично говорил несколько раз, когда мы с ним по работе пересекались. А знаете сколько Джек копий сломал, когда Нвидия отказалась на Куде Фортран поддерживать? У меня эти баталии прям как сейчас перед глазами стоят, хотя и прошло уже 14 лет с той разборки.

PS: чтобы ни у кого не сложилось мнение, что я огульно хаю Фортран, замечу, что я профессионально на нем примерно десять лет писал научный и коммерческий софт, работая в коммерческих фирмах и университетах США и Германии.

 
 
 
 Re: Использовать lapack в C#
Сообщение28.12.2022, 11:52 
ilghiz

Для начала подтвердите, что вы бредили, а потом поговорим об остальном.

 
 
 
 Re: Использовать lapack в C#
Сообщение28.12.2022, 13:05 
traffic_lights в сообщении #1575309 писал(а):
ilghiz

Для начала подтвердите, что вы бредили, а потом поговорим об остальном.

Часть моих публикаций можно найти здесь (интересующая вас - самая последняя на последней странице):
https://www.semanticscholar.org/author/ ... v/91106024

 
 
 
 Re: Использовать lapack в C#
Сообщение28.12.2022, 14:08 
traffic_lights в сообщении #1575315 писал(а):
Часть моих публикаций можно найти здесь (интересующая вас - самая последняя на последней странице):
https://www.semanticscholar.org/author/ ... v/91106024

Так загляните в https://sourceforge.net/projects/math-atlas/ R. Clint Whaley и его команда это же делали примерно в 1998 - на двенадцать лет раньше вашей публикации, не мудрено, что на вас никто не ссылается.

 
 
 
 Re: Использовать lapack в C#
Сообщение28.12.2022, 14:23 
ilghiz

Опять бредите: там речь совершенно о другом (вы так за свой первый бред и не извинились). Не думаю, что вы что-нибудь поняли в моей статье: научный интеллект для ее понимания - это не ваш уровень.

 
 
 
 Re: Использовать lapack в C#
Сообщение28.12.2022, 15:12 
traffic_lights в сообщении #1575324 писал(а):
Опять бредите: там речь совершенно о другом (вы так за свой первый бред и не извинились). Не думаю, что вы что-нибудь поняли в моей статье: научный интеллект для ее понимания - это не ваш уровень.

Давайте все-таки без оскорблений! Я понимаю, что старость надо уважать (как я понимаю Вам за 70, если у вас первая статья в 1979 году вышла) но все-таки чтобы вам судить об интеллекте кого-то, стоило хотя бы на себя посмотреть, за 43 года университетской карьеры только 63 ссылки поиметь на все ваши публикации - это в научной карьере реально моветон и не совместимо с работой в номальных университетах, поэтому я бы на вашем месте не разбравывался на лево и на право фразами
traffic_lights в сообщении #1575324 писал(а):
научный интеллект для ее понимания - это не ваш уровень.

на этом форуме у большинства участников с университетским и не только аффилиэйшином за год столько же ссылок на их публикации возникает.

 
 
 
 Re: Использовать lapack в C#
Сообщение28.12.2022, 15:56 
ilghiz в сообщении #1575332 писал(а):
Давайте все-таки без оскорблений!

А как еще назвать ваше откровенное вранье про f2c? Что касается остального, то басню про Лису и Виноград я уже давно усвоил: примерно когда был объявлен конкурс на поездку в США в 90-ые годы (научная работа по распознаванию рукописного текста в университете Буффало, связанная с почтовой тематикой). Примерно такие же завистливые комментарии типа ваших обрушились на меня, когда я решил принять участие в конкурсе. И я бы туда не поехал, если бы в комиссию не входили американцы. В итоге дутые умники с "прекрасными" достижениями остались за бортом, а я выиграл конкурс. Да, зависть не украшает человека. И потом, почти все ссылки на переведенные публикации в академических российских журналах (в наших академических журналах по вашему разумению публикуется один отстой :D ) и они не учитывают ссылки на нашем поле (во всяком случае, просьб от иностранцев на свои публикации я получил не менее пару сотен за свою жизнь, в основном из США и Германии). С непереведенными статьями (включая закрытые) публикаций у меня значительно больше.

 
 
 
 Re: Использовать lapack в C#
Сообщение28.12.2022, 18:11 
 !  traffic_lights
Выбирайте выражения, даже если Вы убеждены, что собеседник в корне не прав. Предупреждение за личные выпады.

 
 
 [ Сообщений: 28 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group