2012-02-08 47 views
0

比方說,我有一個使用Python或C或其他的雲羣集,我想在雲中執行我的功能(作爲客戶端)。我怎麼可能將我在本地編寫的函數傳遞給服務器?雲計算將功能傳遞給服務器

我在別處看到過這個,我不僅不知道該怎麼做,但我想看看是否有很多想法。

感謝, 安東尼赫斯特

+0

什麼是雲,其中的存儲技術是什麼? – 2012-02-08 10:21:20

回答

1

最流行的系統在集羣中處理大量數據的是Hadoop的(http://hadoop.apache.org/)

您可以編寫功能在python中使用MapReduce編程模式(谷歌它),上傳你的程序到集羣,它會處理你的數據。

看一看,閱讀。這是一個很大的話題 - 對於一個問題太多了。如果您有一些特定用例,請編輯您的問題,並提供更多信息。

0

那麼,如果你在本地編寫它,你可能不會執行任何需要實時編譯的東西(我假設你正在尋找效率,並將交換雲中的一系列計算),在這種情況下,你希望發送它就像在飛行中的紅寶石文件?
但是這看起來不太實際,因爲你真的不會從客戶端獲得這個新寫入的函數,而是將其發送到羣集中,並在整個羣集中進行擴展。

這就是說,設置一些東西,你可以以xml,json等形式發送函數週界。使用http連接或https,如果你需要它的安全,並使用hadoop,mpi等構建它。

0

代碼流動性是一個很大程度上尚未開發的領域,其問題多於答案。通常你不能在運行時移動任意代碼。有一些歷史上支持代碼移動性的編程語言(例如Kali Scheme),但它不適合主流使用。

關於函數,這裏我不太清楚你在問什麼。有一些函數式編程語言支持我認爲用來編碼移動性的「前體」。例如。在Erlang中,您可以傳遞函數簽名,並且在Cloud Haskell中,您可以在一定的限制範圍內發送Closure(這是帶並置數據的函數)。

其他已達到更高重要性的方法是製作插件,即在運行時加載的預編譯二進制文件。可能還有更多的可能性來傳遞目標代碼,以至於當運行時從一個平臺傳遞到另一個平臺時,並非所有事情都需要在運行時進行編譯和鏈接。

通常需要明確的是您開發的是源代碼。這需要在運行時解釋(意味着在兩個平臺上都必須有一個解釋器被加載)或編譯成二進制文件然後啓動。然後,仍然存在數據和狀態等問題,需要在代碼移動性按照我們的設想進行工作之前進行共享。