Этот сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Что там нечётные числа?

Возможно вы уже забыли, но в конце прошлого года я написал небольшую программу, которая искала числа, генерируемые по определённому закону. Рассчитывая быстро упереться в ограничения целого типа в Си, я запускал её на своём ноутбуке, но конца вычислений не дождался.

Тогда я сократил размерность типа вдвое — стал вычислять 64-битные числа и запустил программу почти на два месяца на стационарном компьютере. Там она работала на одном ядре и намолотила 180 с гаком миллионов чисел. Это очень медленно, как по мне.

Сегодня мне надоело, я этот процесс остановил. Вывод — на одном ядре считать совершенно не вариант, надо дописывать многопоточную версию.

Я, кстати, её даже начинал писать — накидал кое-какой скелет, но по дороге решил привлечь к этому делу большие языковые модели. Хотел посмотреть настолько ли они круты, чтобы помочь мне закончить. Пробовал и ЧатГПТ, и уже появившуюся в то время рассуждающую модель DeepSeek R1, бестолку — каждая новая версия программы, написанная с их помощью, не работала так как полагается. В общении с нейросетями я провёл два вечера, а потом просто отложил эту программу в сторону.

Единственное, в чём я признателен нейросеткам, — они решили мою проблему с производительность. Моя многопоточная версия упиралась в блокировку некого разделяемого ресурса и я решил посмотреть справятся ли нейросети с этой проблемой. Справились! В остальном время было потрачено зря.

Надо бы уже показать кованным мешкам кто тут папочка и дописать код самостоятельно.

1 комментарий
void 1 мес

за несколько часов «почти 17 миллионов», а за два месяца «180 с гаком миллионов»,
дело не в однопоточности, а в нелинейном замедлении расчета новых больших чисел,
что непонятно, потому что арифметика-то работает в железе,
возможно тормозит проверка уже найденных чисел, надо профилировать

Евгений Степанищев 1 мес

Ну да, там много всякой работы, но многопоточность вполне помогает. И, кстати, оборудование разное совсем.