Форум сайта python.su
DidarcomТебе говорят, что ты в программировании полный ноль. Ты, может, не понял, но здесь не форум бухгалтерш, которым можно любые залипухи кидать и они схавают, так как не смыслят ничего.
Я же писал что новичок в питоне и никто не сказал что это, только спамят меня
Разделение функции main() на несколько функции не дает результата, скорость перебора падает
DidarcomЭто описание кода, а нужно описание программы без всякого кода.
Вот описание:
Отредактировано py.user.next (Сен. 18, 2018 02:59:50)
Офлайн
У начинающих качество кода всегда не очень. Это нормально. Надо учиться.
1. Конечно нужно описание задачи. Без этого тут нечего обсуждать.
2. Нужны требования по быстродействию.
3. Тут вам пытаются объяснить что такой код надо не ускорять нумбой и не запихивать на видеокарту а просто полностью выкинуть и писать заново.
Поскольку неясно для чего он предназначен то люди смотрят на мелочи. Вам нужно быстродействие? Внутри критического цикла print? Что???? Почему файл открывается внутри wile а закрывается снаружи? Это ошибка.
Тут явно не нужны глобальные переменные в таком количестве. Зачем столько проверок? У вас нет понимания какие требования к исходным данным? Почему столько непонятных констант? Любая константа причина возможной логической не согласованности кода (если она не будет соответствовать остальным частям кода) Такой код будет очень трудно поддерживать.
Список можно продолжать. Попробуйте решить проблемы с пунктами 1,2
Офлайн
Если хочешь задействовать ресурсы GPU то для тебя выход только один - CUDA.
Но там порог входа высокий, плюс надо знать много специфики, так как GPU и CPU это ну оооооочень разные процессоры в плане того как они работают.
Далее, просто так нельзя взять и задействовать GPU, ни питоном, ни джавой ни даже c++. Это не какое то устройство общего назначения, и тут даже не в драйвере дело.
Если же ускорять именно по средством CPU, то многопоточность или лучше много процессность поможет в том случае если твой алгоритм может быть разбит на N отдельным подзадач, независящих друг от друга. Тогда их легко можно раскидать по всем процесорным ядрам/потокам. Найти эту информацию не сложно. СЛожнее подготовить алгоритм.
Но перед этим всем надо сделать профилирование текущего - понять его узкие места, которые можно переделать. Например у тебя в коде есть функци которые записывает что то в файл. Я не знаю насколкьо часто они вызываются, но они делают это в основном цикле. Это операции блокирующие IO - т оесть в этом месте будет простой. Если сохранение частое - общая скорость падает. И таких мест можно поискать еще.
Офлайн
JOHN_16да ХЗ, вроде все уже
Если хочешь задействовать ресурсы GPU то для тебя выход только один - CUDA.
Но там порог входа высокий,
[code python][/code]
Отредактировано PEHDOM (Сен. 18, 2018 12:29:24)
Офлайн