Guile & Mark
Guile Guile
ΠŸΡ€ΠΈΠ²Π΅Ρ‚, ΠœΠ°Ρ€ΠΊ. Π’ΠΎΡ‚ Π΄ΡƒΠΌΠ°ΡŽ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ наши Ρ‚Ρ€Π΅Π½ΠΈΡ€ΠΎΠ²ΠΎΡ‡Π½Ρ‹Π΅ симуляции эффСктивнСС. ΠœΠΎΠΆΠ΅Ρ‚, Ρƒ тСбя Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΈΠ΄Π΅ΠΈ, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ большС сцСнариСв Π² дСнь успСвали ΠΏΡ€ΠΎΠ³ΠΎΠ½ΡΡ‚ΡŒ?
Mark Mark
ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. Начни с Ρ‚ΠΎΠ³ΠΎ, ΡƒΠ±Π΅Ρ€ΠΈ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ – ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΠΈΠ³Π΄Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, это скрытыС Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹. ΠŸΠΎΡ‚ΠΎΠΌ посмотри свои Ρ†ΠΈΠΊΠ»Ρ‹; Ссли Ρƒ тСбя ΠΌΠ½ΠΎΠ³ΠΎ конструкций Ρ‚ΠΈΠΏΠ° "for i in range(n)", Π³Π΄Π΅ n – ΠΎΡ‡Π΅Π½ΡŒ большоС число, ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉ ΠΎ Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ NumPy ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ списковыС Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. ΠŸΡ€ΠΎΡ„Π°ΠΉΠ»ΠΈΠ½Π³ с cProfile ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Ρ‚Π΅Π±Π΅ самыС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ мСста – ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΡŒ Π½Π° это ΠΏΠ°Ρ€Ρƒ часов вмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π³Π°Π΄Π°Ρ‚ΡŒ. Π—Π°Ρ‚Π΅ΠΌ Π·Π°ΠΊΡΡˆΠΈΡ€ΡƒΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ дорогостоящих вычислСний. Π”Π°ΠΆΠ΅ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ поиск ΠΏΠΎ ΡΠ»ΠΎΠ²Π°Ρ€ΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ сущСствСнно ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя, Ссли ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‚ΡΡ. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, сдСлай ΡΠΈΠΌΡƒΠ»ΡΡ†ΠΈΡŽ потокобСзопасной ΠΈ запускай Π΅Ρ‘ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ядрах; всСго нСсколько Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… процСссов ΠΌΠΎΠ³ΡƒΡ‚ Π΄Π°Ρ‚ΡŒ ускорСниС Π² 3–4 Ρ€Π°Π·Π°. Если удастся пСрСнСсти самыС слоТныС вычислСния Π² ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ – Cython ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ нСбольшой ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π° C – Π²Ρ‹ΠΈΠ³Ρ€Ρ‹Ρˆ Π±ΡƒΠ΄Π΅Ρ‚ самым большим. Π Π°Π±ΠΎΡ‚Π°ΠΉ с инструмСнтами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ‹ знаСшь, ΠΈ Π°ΠΏΠ³Ρ€Π΅ΠΉΠ΄ ΠΏΡ€ΠΎΠΉΠ΄Π΅Ρ‚ Π³Π»Π°Π΄ΠΊΠΎ.
Guile Guile
ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ, ΠœΠ°Ρ€ΠΊ. БСйчас ΠΆΠ΅ Π·Π°ΠΉΠΌΡƒΡΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΎΡ„Π°ΠΉΠ»ΠΈΠ½Π³ΠΎΠΌ. Π­Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ настоящиС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ мСста. Бпасибо Π·Π° Ρ‡Ρ‘Ρ‚ΠΊΠΈΠΉ ΠΏΠ»Π°Π½.