2014 dxdy logo

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

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




На страницу Пред.  1 ... 37, 38, 39, 40, 41, 42  След.
 
 Re: Как писать быстрые программы
Сообщение12.02.2026, 14:24 
Yadryara
Вместо > во втором (и последующих) echo используйте >>, это добавляет текст к файлу, а не перезаписывает его. В первом оставьте >.

Либо
Код:
echo [${i},${j}] > nom0_test.input
и в файле будет сразу массив из чисел.

 
 
 
 Re: Как писать быстрые программы
Сообщение12.02.2026, 15:23 
Dmitriy40
Ахахах, ну то есть Yadryara таки делает из своей программы - подпрограмму/функцию, но с таким вот внешним управлением через скрипты командной строки. Ну в принципе -- юникс-путь, норм. Потом сделает папку с семафорами доступной по сети, будет выкладывать в неё задания, а программы-воркеры будут их разбирать и отчитываться как всё прошло.

Yadryara
Кстати, в юникcе/линуксе с незапамятных времён есть встроенная команда factor
https://manpages.ubuntu.com/manpages/re ... plan9.html
Код:
~ $ factor 5037203051
5037203051: 31 37 41 43 47 53
~ $

 
 
 
 Re: Как писать быстрые программы
Сообщение12.02.2026, 15:33 
wrest
Бейсик он такой, не способствовал структурному программированию ...

wrest в сообщении #1718125 писал(а):
Потом сделает папку с семафорами доступной по сети, будет выкладывать в неё задания, а программы-воркеры будут их разбирать и отчитываться как всё прошло.
Я и сам такое подумывал сделать, когда и пентадекатлон и 19-252 искали несколькими компами, но поленился разбираться со сложностями арбитража (а системных файловых семафоров кажется нет, только блокировка файла/каталога). Искать готовое решение тоже было влом, да и обычно они неудобные.
Плюс нужен или публичный хост для размещения папки с заданиями, или внешний ип (а это теперь весьма сложно, да плюс динамический ип, ещё и что-то типа dyndns прикручивать). Мороки море.

 
 
 
 Re: Как писать быстрые программы
Сообщение12.02.2026, 15:35 
Dmitriy40 в сообщении #1718127 писал(а):
Искать готовое решение тоже было влом, да и обычно они неудобные.

А вот тут можно было бы у ИИ спросить :)

 
 
 
 Re: Как писать быстрые программы
Сообщение12.02.2026, 15:50 

(Оффтоп)

wrest в сообщении #1718128 писал(а):
А вот тут можно было бы у ИИ спросить :)
А толку? Ну даст пусть даже готовый код - и что? Как его проверить то? Отладка межпотокового взаимодействия, тем более не в рамках одного процесса/компа, а по сети - это убиться. Либо надо самому хорошо разбираться чтобы сразу видеть возможные проблемы - но тогда ИИ и не сильно ускорит разработку. А понимание ИИ не даст.

 
 
 
 Re: Как писать быстрые программы
Сообщение12.02.2026, 19:26 
Аватара пользователя
Благодарю. Заработало.

wrest в сообщении #1718125 писал(а):
Ну в принципе -- юникс-путь, норм. Потом сделает папку с семафорами доступной по сети, будет выкладывать в неё задания, а программы-воркеры будут их разбирать и отчитываться как всё прошло.

Без меня меня женили :-)

Ни черта не понял, понял только что можно какой-то коллективный счёт организовать. Но... разве есть ещё желающие помогать со счётом?

 
 
 
 Re: Как писать быстрые программы
Сообщение12.02.2026, 19:35 
Yadryara
"Коллективный" счёт можно организовать и на одном компе - каждый процесс/поток сделать отдельным worker-ом, чтобы они шарились в поисках заданий и отчитывались об их выполнении. Зато не надо морочиться с кучей почти одинаковых программ и разделением работы между ними, можно запускать сколько хочешь воркеров, код будет один универсальный, хоть и заметно сложнее.
При дальнейшем усложнении и повышении удобства получится например боинк. :mrgreen:

 
 
 
 Re: Как писать быстрые программы
Сообщение13.02.2026, 08:59 
wrest в сообщении #1718125 писал(а):
Кстати, в юникcе/линуксе с незапамятных времён есть встроенная команда factor https://manpages.ubuntu.com/manpages/re ... plan9.html
Код:

~ $ factor 5037203051
5037203051: 31 37 41 43 47 53
~ $
Да. Есть такой инструмент.
Когда-то давно (лет 5-6 назад) изучал его, включая нутро.
Линуксовый вариант (кажется убунтовский, хотя может и дебиан, подзабыл) какой-то глюковатый был.
Вариант из FreeBSD, при этом, работал устойчиво.

(Оффтоп)

ls /usr/obj/usr/src/games/factor/factor.o
-rw-r--r-- 1 root wheel 5952 Oct 2 2015 /usr/obj/usr/src/games/factor/factor.o
ls /usr/obj/usr/src/games/factor/factor
-rwxr-xr-x 1 root wheel 38371 Oct 2 2015 /usr/obj/usr/src/games/factor/factor

Прикольно, что он лежит в играх:
ls /usr/src/games/factor/

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

 
 
 
 Re: Как писать быстрые программы
Сообщение13.02.2026, 09:29 
DemISdx в сообщении #1718153 писал(а):
Когда-то давно (лет 5-6 назад) изучал его, включая нутро.

Там обновилось в 2025, теперь используется GMP и Поллард-Брент ро https://www.gnu.org/software/coreutils/ ... ation.html и там 2000 строк кода: https://github.com/coreutils/coreutils/ ... c/factor.c

DemISdx в сообщении #1718153 писал(а):
Т.е. как только числа подлиннее, то кирдык, можно 100 лет ждать ответа и получить ошибку переполнения на выходе. Ну и многопотоковости там не было, да и кучи всего, что нужно на больших значениях.

Да, эта утилита конечно как некий курьёз, и удивительное в ней то, что она входит в состав coreutils

 
 
 
 Re: Как писать быстрые программы
Сообщение13.02.2026, 13:33 
wrest в сообщении #1718156 писал(а):
Там обновилось в 2025, теперь используется GMP и Поллард-Брент

О! Круто. Спасибо, не знал. Нужно будет поизучать...

(Оффтоп)

Вспомнил про ман:
man factor
Код:
NAME
     factor, primes -- factor a number, generate primes

SYNOPSIS
     factor [-h] [number ...]
     primes [-h] [start [stop]]

DESCRIPTION
     The factor utility will factor positive integers.  When a number is fac-
     tored, it is printed, followed by a `:', and the list of factors on a
     single line.  Factors are listed in ascending order, and are preceded by
     a space.  If a factor divides a value more than once, it will be printed
     more than once.
...
     must not be greater than the maximum.  The default and maximum value of
     stop is 4294967295 on 32-bit architectures and 18446744073709551615 on
     64-bit ones.
...

BUGS
     factor cannot handle the ``10 most wanted'' factor list, primes will not
     get you a world record.

FreeBSD 9.3                    October 10, 2002                    FreeBSD 9.3

Т.о. все ограничения расписаны.
Ну это на старой версии конечно.

 
 
 
 Re: Пентадекатлон мечты
Сообщение14.02.2026, 17:14 
Появилась интересная информация: одна видеокарта RTX 4090 обгоняет мой сервер с 64 потоками в 130 раз. А в расчёте на один поток получается GPU всего вдвое медленнее. Очень удивительно, по моим прикидкам получалось GPU намного медленнее должны быть ... Чего-то я не понимаю в GPU.
И очевидно код можно переделать под любую нашу задачу.
Товарищ согласен поделиться кодом, но мне его даже проверить не на чем. Прям хоть беги покупать видюху ...

 
 
 
 Re: Пентадекатлон мечты
Сообщение14.02.2026, 19:16 
Dmitriy40 в сообщении #1718237 писал(а):
Появилась интересная информация: одна видеокарта RTX 4090 обгоняет мой сервер с 64 потоками в 130 раз. А в расчёте на один поток получается GPU всего вдвое медленнее. Очень удивительно, по моим прикидкам получалось GPU намного медленнее должны быть ... Чего-то я не понимаю в GPU.
И очевидно код можно переделать под любую нашу задачу.
Товарищ согласен поделиться кодом, но мне его даже проверить не на чем. Прям хоть беги покупать видюху ...


У неё для параллельных вычислений используются 16 тыс. с лишним cuda- ядер , которые относительно просто программируются (по сравнению с "жалкими" 64 потоками). Тут больше заморочек с организацией непосредственно параллельности вычислений.

 
 
 
 Re: Пентадекатлон мечты
Сообщение14.02.2026, 19:52 
A_I
Тут больше заморочек с ограничениями на объём быстрого ОЗУ (например в GPU обычно лишь 32-64КБ "регистров", в CPU же 256КБ кэша L2 и за десяток МБ кэша L3 обычное дело), на скорость доступа к памяти, на трафик с ней же. Все мои оценки упирались именно в ограничения GPU, или на количество warp, или на количество регистров (локальной памяти), или на скорость памяти. Например скорость GDDR7 в RTX4090 всего 1ТБ/с (или 62МБ/с/поток), а суммарная скорость кэшей L2 в 16 cores CPU на 2ГГц вдвое выше, 2ТБ/с (или 64ГБ/с/поток, в 1000 раз больше), и даже скорость DRR3 памяти 25ГБ/с в расчёте на поток оказывается 780МБ/с/поток, в 13 раз выше. При этом RTX4090 в сотню раз дороже голого CPU и в десяток раз дороже целого компа с двумя такими CPU.

 
 
 
 Re: Пентадекатлон мечты
Сообщение14.02.2026, 19:53 
Dmitriy40 в сообщении #1718237 писал(а):
Прям хоть беги покупать видюху


500 000 рублей.
Бегите, покупайте.

 
 
 
 Re: Пентадекатлон мечты
Сообщение14.02.2026, 19:58 
ozheredov
347388р.
О чём и речь.
Но по прикидкам хватит и подешевле, на 1000+ потоков, а такие стоят десяток-два тысяч рубликов (а на авито после майнинга и меньше десятки).

 
 
 [ Сообщений: 616 ]  На страницу Пред.  1 ... 37, 38, 39, 40, 41, 42  След.


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