看板 C_and_CPP 關於我們 聯絡資訊
: → bernachom:HADOOP可以用C嗎@@a? 01/31 00:41 我主要說的是實作部份 Hadoop可以用Stream串接其他語言 也能用Pipe當作C++的接口 : → james732:話說「雲端產業」這四個字實在包山包海,虛擬化技術也算 01/31 00:47 的確,現在的IaaS/PaaS主要也都是在講虛擬化的部份 像AWS就是利用Xen(沒記錯的話)的技術作為底層的VM 不過如何彈性的調動VM、資源排程、開關機器這就是機密了 還有一個重點是計價模式(Pay as you use) : → bernachom:不然我覺得...雲端==遠端.... 01/31 01:12 至於這個問題可以去Cloud版看翟本喬的說法 或是我在下面推的Berkeley白皮書 基本上雲端不是技術,感覺更像是種願景 跟ubiquitous computing比較像,而不是ajax 不論是Virtualization還是Hadoop式的Distributed System 都算是雲端的一種趨近方式 : → james732:至少產品真的會比較好賣XDDD 不過最近這個詞好像比較冷了 01/31 01:22 : → james732:先前一直喊的雲端OS似乎沒啥下文…最近都沒聽到了 01/31 01:22 SaaS的產品我不清楚 因為我也覺得分不出跟傳統網頁應用有啥差別XD 不過像NoSQL Database、Hadoop、OpenStack這些底層技術一直都在發展 讓我們更便利的存取及管理資源,更接近cloud的遠景 而AWS、私有雲的建設等商業模式也都慢慢步上軌道了 : 推 shemale:hadoop是個過渡期的產物 01/31 03:58 : → shemale:真正的雲端運算,是你不用懂得mapreduce而它已經幫你做完 01/31 03:59 : → shemale:hadoop用java寫時要extends (還是implement)map reduce 01/31 04:00 : → shemale:這只是一個分散運算的方法,還不能稱得上雲端 01/31 04:01 : → shemale:我心目中的雲端只有兩個字:無感 01/31 04:02 : → shemale:你不知道資料在哪裡,也不知道幾台電腦幫你運算 01/31 04:02 : → shemale:它就是幫你做完了,中間過程什麼的我們不用知道,才叫雲端 01/31 04:04 : → shemale:我舉個例子好了,比如說,我開一個1T的檔案strstr找東西 01/31 04:18 : → shemale:我以為只有這台機器在做,其實,這動作被分散到許多台機器 01/31 04:19 : → shemale:你沒有寫什麼MapReduce只是照C的入門書寫的單純用strstr() 01/31 04:20 : → shemale:你只是open一個你以為是local的檔案然後read然後strstr 01/31 04:21 : → shemale:但這檔案其實是分散在不同機器而strstr也在不同機器同時跑 01/31 04:22 : → shemale:這樣才叫雲端,一切都在雲裡,你不用知道它在哪裡怎麼做的 01/31 04:23 其實我同意你的說法。 不論是Virtualization還是Hadoop都還是在發展當中的技術。 但就像是Parallel computing,至少現在沒有能完美自動平行化的compiler, 我們還是需要去寫OpenMP或CUDA,分散系統下也需要MPI或MR。 不過感覺現在的趨勢是底層以Hadoop為基礎做出各種系統(Hive、HBase), 讓上層寫服務的人無感使用這些系統完成任務。 當然我們最終的希望是資源存取看似無限,使用方式也非常簡便。 不過目前來說,這種cloud還雲深不知處XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.249.152.178 ※ 編輯: hilorrk 來自: 111.249.152.178 (01/31 15:04)
james732:推,不過這個討論離C++越來越遠了,板主手下留情啊...XD 01/31 15:07
jakevin:XD 蠻有趣的 第一篇只是簡單四五行 就釣出一堆高手! 01/31 16:14
Favonia:(至少學術界)有那種完美compiler,只是你要改用其他語言... 01/31 16:37
Favonia:可惜的是我覺得學術界自從某年代後對於主流語言就沒有什麼 01/31 16:39
tropical72:推推!! 另想請教 F 大,學術界那種完美的compiler是哪種 01/31 16:40
Favonia:影響力了 xDDD(我是指研究程式語言理論的部份) 01/31 16:40
Favonia:tropical72:之前聽到的 www.cs.cmu.edu/~scandal/nesl.htm 01/31 16:53
Favonia:不過我不知道他的實作多有效率... 01/31 16:53
感謝Favonia提供的資訊 我沒有深入去研究NESL的機制 其實的確有很多研究和工具正在進行 像MS的PPL、Intel的TBB感覺也是在做類似的事 差別在於這兩個都算是C++的extension,而NESL是創新的語言 不過我指的Compiler並不是這種 其實這些Parallel Programming的工具和傳統OpenMP、MPI差不多 都是將演算法做在基於某些特定的model上 而非像shemale說的完全「無感」移殖原有程式 一方面不同的Parallelism model差很多(Data-independent、Task-based) 一方面硬體的不同也會造成平行化策略的不同(CUDA、OpenMP、 MPI) 很難用程式去分析一個普通的應用該用什麼方式吧 我也不是這方面的專家,不過大概就是這個感覺XD
tropical72:好酷,謝謝 Favonia. 01/31 16:58
※ 編輯: hilorrk 來自: 111.249.152.178 (01/31 20:07)
Favonia:(1) 「原有程式」如果用C/C++寫本來就不容易,因為C/C++有 01/31 21:20
Favonia:很多地方相當複雜;如果你用學術上稍微乾淨漂亮一點的語言 01/31 21:22
Favonia:來寫「原有程式」,就可以接近你希望的「幾乎不用改」。 01/31 21:30
Favonia:(我覺得目前比較像是暗示編譯器哪裡平行話比較有效率..) 01/31 21:31
Favonia: ^^化 01/31 21:32
Favonia:(2) 平行(parallel)指的是邏輯上獨立,並行(concurrent 01/31 21:35
shemale:雖然我是用C來舉例,但我覺得數學方面像matlab比較適合 01/31 21:35
Favonia:)指的是同時間一起跑,其實有點差別。像 MPI 是並行,但 01/31 21:36
shemale:C還是用在比較低階的地方比較好 01/31 21:37
Favonia:NESL 是平行。你可以用並行的工具讓平行的程式更快跑完。 01/31 21:38
Favonia:(3) 那些比較學術的語言(如 NESL)可以讓程式設計師永遠 01/31 21:39
Favonia:寫不出錯誤的平行程式(實際上邏輯不獨立卻被當成獨立), 01/31 21:40
Favonia:這是很多主流語言再怎麼加上新函式庫也保證不了的事情... 01/31 21:41
Favonia:勘誤:上面「哪裡平行化比較有效率」應為「並行」才對... 01/31 21:43
shemale:F大,great!! 01/31 21:43
Favonia:(4) 反正目前偏理論的學術對於主流語言沒啥影響力,所以我 01/31 21:45
Favonia:這邊講的都是看得到用不了的東西 xD 除非你待在奇怪的公司 01/31 21:46
Favonia:堅持用奇怪的語言來寫軟體... 01/31 21:48
感謝Favonia的指教,讓我清楚了許多! 第一點這個我也瞭解 intel的compiler對intel cpu有類似基礎的功能 之前有聽講者說CUDA也有在研究相關的議題 不過關於第三點有些好奇 像NESL也是有自己的parallelism model 而一般的「並行」程式工具也都有自己的parallelism model 演算法需要映至這種model才能達成平行化的目標 在對映的過程中NESL應該也無法避免在原有演算法中 邏輯不獨立卻被當成獨立這種使用者的錯誤吧? 重新設計語言是能使parallelism model和程式核心結合 語意及程式邏輯會比較清楚且更容易除錯 其實我還是不太瞭解您的意思,可否舉個例子? ※ 編輯: hilorrk 來自: 111.249.152.178 (01/31 22:51)
Favonia:我不太清楚你的意思@@我自己只有證明過NESL的一小部份只要 01/31 23:00
Favonia:順利通過編譯器檢查,執行時不可能出現出現race condition 01/31 23:01
Favonia:之類的東西;完整的NESL我相信也有同樣的性質... 01/31 23:02
Favonia:簡單來說就是編譯器可以保證程式會安全的執行完。 01/31 23:04
拍謝,是我自己想的太複雜了,連基礎的事都忘記XD 一講到race condition就瞭解你說的沒錯, 這的確需要從語言核心、系統架構和compiler來完成 不過像MapReduce這種Model也能避免同樣的問題 只是限制太大了就是... ※ 編輯: hilorrk 來自: 111.249.152.178 (01/31 23:17)