2014 dxdy logo

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

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




На страницу Пред.  1 ... 28, 29, 30, 31, 32
 
 Re: Как писать быстрые программы
Сообщение08.12.2025, 09:39 
Аватара пользователя
Решил разбираться с функцией em3, не торопясь. В интерпретаторе на сильно загруженном компе запускал пока так:

for(i=0,7,em3(i,i*10^6,10^6,2^20))

И сделал нормальную табличку:

Код:
  Старт  Интервал   Таблица   Подго  Найдено   Прошло    Проверено  Cкорость   Время
  канди       млн   простых   товка  цепочек  цепочек  псевпростых     счёта   счёта
  датов                  до                                          цеп/сек     сек
      0         1   1048576   24 ms        1        2      1100107     13488    74.1
1000000         1   1048576   23 ms        0        0      1098511     14419    69.4
2000000         1   1048576   23 ms        0        1      1098296     13639    73.3
3000000         1   1048576   24 ms        0        1      1097853     13992    71.5
4000000         1   1048576   25 ms        0        3      1097228     13675    73.1
5000000         1   1048576   26 ms        0        2      1097272     13471    74.2
6000000         1   1048576   24 ms        0        1      1097228     13672    73.1
7000000         1   1048576   20 ms        0        2      1096437     13558    73.8

 
 
 
 Re: Как писать быстрые программы
Сообщение08.12.2025, 09:56 
Yadryara в сообщении #1711966 писал(а):
Решил разбираться с функцией em3, не торопясь. В интерпретаторе на сильно загруженном компе запускал пока так:

Хорошо. По крайней мере, работает :D
Немного странно что 4-й миллион, где прошло 3 цепочки, по скорости недостаточно сильно упал относительно тех, где прошли 1 и 2 цепочки. Видимо, сказывается загруженность компа.
После компиляции ожидайте минимум 4-кратный рост при параллельном запуске, может и больше.

 
 
 
 Re: Как писать быстрые программы
Сообщение08.12.2025, 11:06 
Аватара пользователя
wrest в сообщении #1711967 писал(а):
Немного странно что 4-й миллион, где прошло 3 цепочки, по скорости недостаточно сильно упал относительно тех, где прошли 1 и 2 цепочки.

Не 4-й, а 5-й миллион. Сейчас лучше:

Код:
? default(parisizemax,2^27)
? init_wrest_2()

      0    1000000   1048576  11 ms   1   2   1100107   69783   14,330 ms
1000000    1000000   1048576   7 ms   0   0   1098511   76887   13,006 ms
2000000    1000000   1048576   7 ms   0   1   1098296   72955   13,707 ms
3000000    1000000   1048576   8 ms   0   1   1097853   67732   14,764 ms
4000000    1000000   1048576   7 ms   0   3   1097228   61496   16,261 ms
5000000    1000000   1048576   8 ms   0   2   1097272   67453   14,825 ms
6000000    1000000   1048576   7 ms   0   1   1097228   69454   14,398 ms
7000000    1000000   1048576   7 ms   0   2   1096437   68662   14,564 ms

1min, 55,925 ms

wrest в сообщении #1711967 писал(а):
После компиляции ожидайте минимум 4-кратный рост при параллельном запуске, может и больше.

Параллельный пока не пытался делать. Обычный да, почти в 5 раз быстрее. Но обольщаться не буду.

 
 
 
 Re: Как писать быстрые программы
Сообщение08.12.2025, 11:16 
Yadryara
Есть ещё такой лайфхак.
Обратите внимание на комментарий в тексте с функцией em3 в самом начале:
Код:
/*
GP;default(threadsize,32M);
GP;default(debugmem,0);
*/

gp2c добавляет то, что идет в комментарии после символов "GP;" как команды в файл *.gp.run
Соответственно, когда вы даёте команду gp2c-run -g <filename>.gp то после компиляции и запуска интерпретатора, эти команды выполняются в интерпретаторе. Так что вы можете добавить например такой комментарий
Код:
/*
GP;default(parisizemax, 2^27);
GP;init_wrest_2();
*/

и исполнение запустится автоматически

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


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