自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python團(tuán)隊(duì)官宣下線GIL:可選擇性關(guān)閉

開發(fā) 前端
GIL全名為全局解釋器鎖(Global Interpreter Lock)。這是一種線程管理機(jī)制,并不根屬于Python語言,而是存在于CPython中。

鵝妹子嚶!拖累AI和ML運(yùn)算的GIL鎖終于關(guān)!閉!了!

Python官方宣布,在新版的CPython中,GIL鎖將成為「可選擇項(xiàng)」。

人們終于不必再受到這一限制的困擾了。

圖片圖片

這則通告中提到的colesbury,多年來一直致力于讓Python官方把GIL移除。

現(xiàn)在這個夢想終于實(shí)現(xiàn)了,不僅Python官方對他表示了感謝,網(wǎng)友也給他發(fā)去了賀電。

圖片圖片

GIL的關(guān)閉,意味著此前只能串行的多個線程將可以并行運(yùn)行。

對于人工智能、機(jī)器學(xué)習(xí)等計算密集型領(lǐng)域,工作效率將大大提高。

聽聞這一消息,已經(jīng)用了20年、快要把Python當(dāng)成母語的老用戶流下了激動的淚水。

圖片圖片

LeCun也發(fā)文表示慶祝:再也沒有GIL了!

圖片圖片

再見了,GIL

根據(jù)官方通告顯示,GIL的下線工作將分為三個階段。

短期之內(nèi),出于兼容性等考量,「無GIL」將作為實(shí)驗(yàn)性功能供用戶選擇。

在這一階段(大約是3.13版本),Python團(tuán)隊(duì)也需要進(jìn)行摸索,可能無法提供社區(qū)支持。

同時官方也希望發(fā)行商在這一階段不要將no-GIL作為默認(rèn)屬性。

這一過程可能持續(xù)1-2年時間。

當(dāng)有足夠的社區(qū)支持能力后,GIL的退出將進(jìn)入中期階段。

這主要取決于修改后的API對舊版本的兼容程度。

這一階段當(dāng)中,分銷商將開始提供no-GIL版本,但不同的包之間可能存在較大差異

而Python團(tuán)隊(duì)的長期目標(biāo)是將no-GIL作為默認(rèn)選項(xiàng),甚至徹底抹去GIL的一切痕跡。

官方對此十分期待,但同時為了確保兼容性,也表示不能操之過急。

官方預(yù)計,這一目標(biāo)可能要等到五年之后實(shí)現(xiàn)。

同時官方也表示,如果在此期間發(fā)現(xiàn)關(guān)閉GIL的風(fēng)險遠(yuǎn)大于收益,會進(jìn)行回滾操作。

不過,也有吃瓜群眾表示,GIL是個嘛玩意兒?

而且這條的瀏覽量在評論區(qū)還排上了第二名。

圖片圖片

那就讓我們來看看,這把「鎖??」,究竟「鎖」住了什么。

GIL「鎖」住了什么

GIL全名為全局解釋器鎖(Global Interpreter Lock)。這是一種線程管理機(jī)制,并不根屬于Python語言,而是存在于CPython中。

Cpython是由官方推出、用C語言實(shí)現(xiàn)的Python代碼解釋器。

換言之,只要用的Python是官方版本,都會受到GIL的影響。

在GIL鎖開啟的情況下,同個進(jìn)程內(nèi)的多個線程只能串行而不能并行。

GIL的釋放有兩種觸發(fā)方式,一種是遇到I/O操作,另一種則是超出時間限制。

遇到I/O操作時,原線程運(yùn)行結(jié)束,其余線程對CPU使用權(quán)進(jìn)行「競爭」。

但如果是超時釋放,原來運(yùn)行的線程會重新加入這場「競爭」。

這種做法是出于安全性考慮,但已經(jīng)不能適應(yīng)時代的發(fā)展。

根據(jù)GIL的原理,主要進(jìn)行I/O操作的程序,比如網(wǎng)頁爬蟲,受到的影響并不大。

而對于計算密集型的程序來說,就是另一回事了。

GIL誕生時的CPU還只有一個核心,但在發(fā)展的過程中,GIL始終保持著全局鎖定的特性。

這就導(dǎo)致了在多核CPU早已普及的今天,多出的核心并沒有被利用,大量算力被浪費(fèi)。

這意味著,對于AI、ML等計算密集領(lǐng)域,效率會出現(xiàn)嚴(yán)重降低。

AI發(fā)展如火如荼的現(xiàn)在,姍姍來遲的解決方案終于出爐。

不過,就像這位網(wǎng)友所說的,晚一些總比沒有好。

圖片

參考鏈接:
[1]https://discuss.python.org/t/a-steering-council-notice-about-pep-703-making-the-global-interpreter-lock-optional-in-cpython/30474
[2]https://twitter.com/soumithchintala/status/1685524194144989184
[3]https://en.wikipedia.org/wiki/Global_interpreter_lock
[4]https://wiki.python.org/moin/GlobalInterpreterLock

責(zé)任編輯:武曉燕 來源: 量子位
相關(guān)推薦

2009-11-09 17:32:59

Oracle可選擇性

2023-08-08 14:17:58

OpenAI模型

2013-04-19 11:24:19

Ubuntu 13.0GNOME桌面

2009-10-13 08:50:45

Windows 7關(guān)閉預(yù)覽

2020-11-15 23:18:18

Docker容器化容器

2009-09-16 15:05:38

開源軟件軟件營銷開源產(chǎn)品

2012-11-05 14:38:04

2014-12-17 10:59:28

2011-06-29 09:33:18

Qt 編譯

2010-03-03 08:57:18

瀏覽器用戶選擇

2021-12-03 12:03:21

Windows 11菜單布局應(yīng)用程序

2023-07-22 00:33:07

React團(tuán)隊(duì)數(shù)據(jù)

2022-08-19 09:53:20

人工智能大數(shù)據(jù)風(fēng)險

2012-03-27 14:23:38

Windows 8IE10

2011-04-06 10:20:26

MySQL數(shù)據(jù)庫索引

2014-08-06 10:10:52

MariaDB二進(jìn)制日志

2022-01-12 13:45:09

微軟Windows 11Windows

2010-07-13 14:06:26

Perl選擇性控制結(jié)構(gòu)

2021-02-15 18:50:12

谷歌Chrome瀏覽器

2022-12-09 10:09:24

微軟Windows 11
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號