狀態無關特性

2021-06-05 22:24:44 字數 775 閱讀 7996

時不時的就會發現一些例證來一遍一遍的教導自己「道理都是相通的」。

cpu受限於製造工藝的精細程度,因而提高效能的著眼點放在了並行處理上。但是並行不是說並性就可以並行的,比如python裡面為了保證資料安全,必須有乙個gil全域性解釋鎖的存在,導致乙個python直譯器同一時間只能使用乙個cpu。那為什麼要用gil來保證資料安全呢,因為資料的處理需要上下文環境,換句話說也就是資料的處理結果依賴於當前執行環境的狀態。只要有這個限制,各種似鎖是鎖的機制就要存在,就要保證cpu中斷前後的環境是沒有變化的。而函式式程式設計則可以打破上述限制,因為其給定的函式約束,必要保證乙個函式的執行結果只依賴於引數而和狀態無關,因而就可以方便的實現並行合作。

同樣,資訊**了這麼久,大資料的處理只靠單機來保證時效是絕對不可能的了,因而也要併發,讓一群機器來通力合作,比如map-reduce處理框架。而合作的基礎要求,仍然是狀態無關特性。否則,同一機器不同時間或者不同機器不同時間狀態下對同一源資料出來的結果不同,那。。。

為圖形處理而生的gpu現在也在高效能計算領域展露頭角,同樣主頻的gpu比cpu資料處理效能,按照某種說法,「高到不知道**去了!」。為什麼?因為gpu是實實在在的平行計算。那為什麼gpu可以實現並行?理由還是gpu要求的處理過程必須狀態無關,各個流水線可以按照規則自己悶頭做自己的事情,而cpu則受限於需要實現複雜的邏輯結構,而不得不處理各種中斷,用時間片來實現偽並行。是否可以把cpu和gpu合併成為乙個joinpu?我認為答案是不可能,因為他們根據自身的前提假設,本身已經走在不一樣的路上,且都有必需的理由存在。如果可以,只能在合適的環境下選擇合適的pu,或者結合兩兄弟來幹一番大事業。

uva 1379 無關狀態不會被有用狀態呼叫

不會被呼叫到的狀或者沒有實際意義的狀態,不會被呼叫到,就不會影響最終的結果,但在最終收集結果要避免它。本題,看上去沒有好辦法,直接dp空間時間都受不了,可以先排序對陣每個對手的一行,則該行會被用到的會是前幾個,但我不確定一定是前5個,但這樣去做,就a了,有待證明。本題有些特殊狀態即前4天的狀態,因為...

物件的狀態特性

物件狀態的變化一般是由你關心的某屬性變化引起的,無狀態的物件一般是不可變物件,不可變物件是執行緒安全的。無狀態的物件,是乙個物件,並且這個物件沒有狀態!通常情況,幾乎所有物件都有狀態,比如乙個人,按照不同的情況有多種狀態,比如高矮 胖瘦 黑白 高富帥窮矮挫。比如乙個杯子,玻璃的還是塑料,圓的還是方的...

序(無關技術)

本人目前是研究生一枚,成長在東北的乙個偏僻小鎮,高考發揮偏差,但所幸也被華北某一211大學錄取 博主不願透露 就讀於該校計算機專業。本科畢業後,同學們分散各地,工作的工作,讀研的讀研,而我的選擇也是後者 目前算是雙211學歷吧 當今社會這個學歷沒什麼好吹的 做這種選擇的原因一是深感自己能力有限,希望...