TEIL-Clusters Peng Chun-Jen Taiwan Evolutionary Intelligence Laboratory 2016/11/23 Group Meeting Presentation
Outline Brief review on Computer Networking Common Services in Clusters Parallel Computing
Outline Brief review on Computer Networking Server host Server Application Common Services in Clusters Parallel Computing
Server A Program or Device that provides services for other programs or devices Software : Client-Server model Split tasks and workload between service provider (server) and requester (client) Hardware : Server-host runs one or more server at the same time Could be a client at the same time
Server (Device) Host: any computer connected to a network Physical network node: Host: Computers (i.e. server-hosts, user-host) http://https://max-media.imgix.net/transfers/2016/10/12/97772b5e3b8ec2fad77d4ad66e3b10edf3d6c806.gif http://i.lv3.hbo.com/assets/images/series/westworld/homepage/2016/september/160922-westworld-key-art-1920.jpg
Server (Device) Host: any computer connected to a network Physical network node: Host: Computers (i.e. server-hosts, user-host) Appearance: Workstation 工作站 Tower Server 塔式 Slightly larger than PC Scalability 服務器的主板擴展性較強、插槽也多出一堆,所以個頭比普通主板大一些,因此塔式服務器的主機機箱也比標準的ATX機箱要大,一般都會預留足夠的內部空間以便日後進行硬盤和電源的冗餘擴展。升級擴張也有個限度 https://www.gamesclan.com/immagini/dedicati-h.jpg
Server (Device) Host: any computer connected to a network Physical network node: Host: Computers (i.e. server-hosts, user-host) Appearance: Tower Server 塔式 Rack Server 機架式 Easier to maintain servers in bays or slots of rack 22U ~ 42U (1U = 44.45mm) 機架服務器是一種外觀按照統一標準設計的服務器,配合機櫃統一使用。可以說機架式是一種優化結構的塔式服務器,它的設計宗旨主要是為了儘可能減少服務器空間的佔用,而減少空間的直接好處就是在機房託管的時候價格會便宜很多。 通常有1U,2U,3U,4U,5U,7U幾種標準的服務器。機櫃的尺寸也是採用通用的工業標準,通常從22U到42U不等 Cons:單機性能就比較有限,應用範圍也比較有限,只能專注於某一方面的應用 https://s.aolcdn.com/hss/storage/midas/c4ffd6e734b74ca2a7a fac615a9cc603/202504538/google-servers-2015-08-20-01.jpg
Server (Device) Host: any computer connected to a network Physical network node: Host: Computers (i.e. server-hosts, user-host) Appearance: Tower Server 塔式 Rack Server 機架式 Blade Server 刀鋒伺服器 主板可以連接起來提供高速的網絡環境,可以共享資源,為相同的用戶群服務。在集群中插入新的"刀片",就可以提高整體性能。而由於每塊"刀片"都是熱插拔的 可以通過新型的智能KVM轉換板共享一套光驅、軟驅、鍵盤、顯示器和鼠標,以訪問多台服務器 刀鋒伺服器是為了在一定的空間中容納更多伺服器,並且做到簡化管理與佈線,因此,刀鋒伺服器採用模組化設計,可一刀一刀直立地部署於刀鋒伺服器機箱中,平均而言,扣掉刀鋒伺服器機箱內共用電源、風扇、背板以及交換器等空間,每1U的空間約可以容納1.43∼2個伺服器單元。 高密度服務器內置了監視器和管理工具軟件,可以幾十個甚至上百個地堆放在一起。配置一台高密度服務器就可以解決一台到一百台服務器的管理問題。如果需要增加或者刪除集群中的服務器,只要插入或拔出一個CPU板即可。 刀鋒伺服器建置成本高,而且用戶本身不一定有那麼大的整併需求 http://www.colomachine.com/colomachinev3/Blade-System/CB1100/Web-Image/pcblade-diag1.gif
Server (Device) Host: any computer connected to a network Physical network node: Host: Computers (i.e. server-hosts, user-host) Appearance: Tower Server 塔式 Rack Server 機架式 Blade Server 刀鋒伺服器 Multi-node 多節點 (窮人版刀鋒伺服器) 多節點伺服器 「成本」是多節點伺服器最主要的訴求之一,常有人把多節點伺服器戲稱為「窮人的刀鋒」。簡單地說,多節點伺服器是將原本放置單片主機板的機架式機箱規格,改為放入多片主機板來提高運算密度,目前可容納最多節點的伺服器是在4U高度的機箱內插滿8片主機板。就密度來看,平均是1U的高度可以容納2台伺服器,或者更精確地說是以2個節點(Node)來計算。 多節點伺服器的機箱較為簡單,最多就是電源以及風扇的配置,這些共用的裝置將提供給所有節點電力以及冷卻能力。 「成本」是多節點伺服器最主要的訴求之一,常有人把多節點伺服器戲稱為「窮人的刀鋒」。簡單地說,多節點伺服器是將原本放置單片主機板的機架式機箱規格,改為放入多片主機板來提高運算密度,目前可容納最多節點的伺服器是在4U高度的機箱內插滿8片主機板。就密度來看,平均是1U的高度可以容納2台伺服器,或者更精確地說是以2個節點(Node)來計算。 http://siliconangle.com/files/2013/08/smtp-server.jpg
Server (Device) Appearance: Tower, Rack, Blade Physical network node: Host: Computers (i.e. server-hosts, user-host) Hubs(集線器), Switch(交換器), Router(路由器)
Server (Device) Appearance: Tower, Rack, Blade Physical network node: Host: Computers (i.e. server-hosts, user-host) Hubs(集線器) : boardcast network, half-duplex(半雙工) Switch(交換器) Router(路由器) 廣播是指,當A電腦要透過HUB送資料給B電腦的時候,A送出來的資料其實連接在這台HUB上的電腦都會收到,但是只有B電腦會將資料收起來,其他電腦則是將封包丟掉。 半雙工是指,收資料或送資料不能同時,你一次只能做其中一種。無線電對講機就是使用半雙工系統 由於HUB的這種特性,所以當HUB連接非常多電腦時,網路就會變慢。 http://aitkotw.blogspot.tw/2015/04/computer-hubs-and-types-of-hub.html
Server (Device) Appearance: Tower, Rack, Blade Physical network node: Host: Computers (i.e. server-hosts, user-host) Hubs(集線器) : boardcast network, half-duplex(半雙工) Switch(交換器) : memorize MAC, full-duplex(全雙工) Router(路由器) : switch中文叫交換器,和HUB看起來一樣,但實際上差別很大。首先switch並不一直廣播,而且是全雙工的。主要是SWITCH會記錄封包中的MAC位址所以當電腦A傳送資料給電腦B時,其他電腦並不會也收到資料,而且這個時候別的電腦也可以同時互相傳送資料。 雖然SWITCH有上述的好處,但是要傳送的資料封包每一個都必須經過SWITCH判斷決定要送往哪一台電腦,所以會有一些延遲,因此有時候電腦數少於五台,用HUB反而比SWITCH快。 http://http://www.grd.ru/images/price/1372128268.jpeg
Server (Device) Appearance: Tower, Rack, Blade Physical network node: Host: Computers Hubs(集線器) : Switch(交換器) : Router(路由器) : ip-sharer (ip 分享器) 路由器的主要功能是切割IP DOMAIN,當然可以切割成網內和網外,但也可以兩邊都是網內,或者都是網外,而且他通常只負責轉送,並不會對要轉送的封包做手腳。 Router是依照封包的目的IP來決定資料是要傳往哪一個介面的哪一個網域。 IP分享器LAN port裡的電腦室使用虛擬IP,也就是俗稱的假IP,這個網段通常是192.168.X.X,最常見的是192.168.0.X與192.168.1.X。這個IP網段是保留的網段,在實際網際網路並不能使用。NAT這個功能負責記錄網卡MAC位址與假IP的關係並做轉換。 IP分享器,只能轉送網內和網外,而且因為NAT的關係,轉送的封包一律會被修改過才轉送出去,他主要是用來解決一般民眾IP不足的問題。但是運作的根本原理,和路由器是相同的(一樣轉送兩個不同IP DOMAIN) 對路由器本身而言,並沒有內外之分,他主要是由不同介面來組成,每個介面負責管理一個IP DOMAIN,而路由器就負責判斷收到的封包,要往那個介面傳送出去,而傳送的依據就是Routing Table。 http://www.wiringdiagrams21.com/wp-content/uploads/2012/01/SamsungUA40D6000SRLEDTVtoLANNetworkCableConnectionDiagram.jpg http://www.itworldcanada.com/wp-content/uploads/2013/09/Haweui-AR3200-enterprise-router-cropped.jpg
Server (Device) Appearance: Tower, Rack, Blade Physical network node: Host: Computers (i.e. server-hosts, user-host) Hubs(集線器), Switch(交換器), Router(路由器) Network: Ethernet : Carrier Sense Multiple Access/Collision Detection InfiniBand : More efficient mechanism than TCP 每一個節點有全球唯一的48位元位址也就是製造商分配給網卡的MAC位址,以保證乙太網路上所有節點能互相鑑別。 帶衝突檢測的載波偵聽多路存取(CSMA/CD) 此方案要求裝置在傳送影格的同時要對信道進行偵聽,以確定是否發生碰撞,若在傳送資料過程中檢測到碰撞,則進行如下碰撞處理操作: 傳送特殊阻塞資訊並立即停止傳送資料:特殊阻塞資訊是連續幾個位元組的全1訊號,此舉意在強化碰撞,以使得其它裝置能儘快檢測到碰撞發生。 在固定時間(一開始是1 contention period times)內等待隨機的時間,再次傳送。 若依舊碰撞,則採用截斷二進位指數避退演算法進行傳送。即十次之內停止前一次「固定時間」的兩倍時間內隨機再發送,十次後則停止前一次「固定時間」內隨機再發送。嘗試16次之後仍然失敗則放棄傳送。 InfiniBand使用基於信任的、流控制的機制來確保連接的完整性,資料包極少丟失。使用InfiniBand,除非確認接收緩存具備足夠的空間,否則不會傳送資料。接受方在資料傳輸完畢之後, 返回信用來標示緩存空間的可用性。通過這種辦法,InfiniBand消除了由於原資料包丟失而帶來的重發延遲,從而提升了效率和整體性能。
Server (Device) Appearance: Workstation, Rack, Blade Physical network node: Host: Computers (i.e. server-hosts, user-host) Hubs(集線器), Switch(交換器), Router(路由器) Network: Ethernet : 100Mbps ~ 10Gbps InfiniBand : 20Gbps https://www.asus.com/tw/support/faq/1000761/ http://image.wuji8.com/upload/5/7c/57c634e3b9cf9d27706e3ed864917c22.jpg 每一個節點有全球唯一的48位元位址也就是製造商分配給網卡的MAC位址,以保證乙太網路上所有節點能互相鑑別。 帶衝突檢測的載波偵聽多路存取(CSMA/CD) 此方案要求裝置在傳送影格的同時要對信道進行偵聽,以確定是否發生碰撞,若在傳送資料過程中檢測到碰撞,則進行如下碰撞處理操作: 傳送特殊阻塞資訊並立即停止傳送資料:特殊阻塞資訊是連續幾個位元組的全1訊號,此舉意在強化碰撞,以使得其它裝置能儘快檢測到碰撞發生。 在固定時間(一開始是1 contention period times)內等待隨機的時間,再次傳送。 若依舊碰撞,則採用截斷二進位指數避退演算法進行傳送。即十次之內停止前一次「固定時間」的兩倍時間內隨機再發送,十次後則停止前一次「固定時間」內隨機再發送。嘗試16次之後仍然失敗則放棄傳送。 InfiniBand使用基於信任的、流控制的機制來確保連接的完整性,資料包極少丟失。使用InfiniBand,除非確認接收緩存具備足夠的空間,否則不會傳送資料。接受方在資料傳輸完畢之後, 返回信用來標示緩存空間的可用性。通過這種辦法,InfiniBand消除了由於原資料包丟失而帶來的重發延遲,從而提升了效率和整體性能。
Server (Device) Appearance : Workstation, Rack, Blade Network node: Host, Hubs, Switch, Router Network : Ethernet, InfiniBand Goal: (RASUM) => Cloud Service Reliability - Usability Avalibility - Manageability Scalability - Modularity? 1)可管理性 可管理性是指伺服器的管理是否方便、快捷,應用軟體是否豐富。在可管理性方面,基於Widows NT/2000平臺的個人電腦伺服器要優於Unix伺服器。 2)可用性 可用性是指在一般時間內伺服器可供訪問者正常使用的時間的百分比。.提高可用性有兩個方面的考慮:減少硬體平均故障時間和利用專用功能機制。專用功能機制可在出現故障時自動執行系統或部件切換機制,以避免或減少意外停機。 3)高性能 這是指伺服器綜合性能指標要高。主要要求在運行速度、磁碟空間、容錯能力、擴展能力、穩定性、監測功能及電源等方面具有較高的性能指標。尤其是硬碟和電源的熱插拔性能、網卡的自適應能力的性能指標要高。 4)可擴展性 為了使伺服器隨負荷的增加而平穩升級,井保證伺服器工作的穩定性和安全性,必須考慮伺服器的可擴展性能。首先在機架上要有為硬碟和電源的增加而留有的充分空間,其次主機上的插槽不但要種類齊全,而且要有一定的餘量。 5)模塊化 模塊化是指電源、網卡、SCSI卡、硬碟等部件為模塊化結構,且都是有熱插拔功能,可以線上維護,從而使系統停機的可能性大大減少。特別是分散式電源技術可使每個重要部件都有自己的電源。
Server (Device) TEIL-Cluster1 at EE2-R202 剩下node005 006 007 008 011 012 013 NFS on pbsServer 需要門禁卡 奇數年重灌
Server (Device) TEIL-Cluster2 at BL-615
Server (Device) TEIL-Cluster2 at BL-615
Server (Program) Architecture: Master-Slave : Client-Server: A computer(host) could be a client, a server, or both Server-hosts have more resources then client-hosts? Master-Slave : Client-Server: Peer-to-Peer: (a). Client-Server架構 優點: (i)可以有效的控制整體的流量效率。 (ii)可對使用者進行管控。 (iii)資料容易控管。 缺點: (i) Server會受到很大的負荷。 (ii) 管理集中, 一旦Server壞損, 一切將停擺。 (b). P2P(peer-to-peer) (i) 可以減輕Server的負擔, 讓系統執行更加順暢, 對整個系統而言有相當大 的好處。 (ii)檔案共享可以增加資料的流動性, 使資訊交流加快, 相對代表難以掌控 資料動向。 (iii)使用者完全匿名, 具有隱密性, 相對的代表它無法受到管理。 (i)需要有強大的硬體能力。 (ii)無法具有可管理性, 資料的流通動向、流量難以掌控。 (iii)難以控制。
Server (Program) Master-Slave : Client-Server: service provider (slave) and requester (master) unidirectional control Client-Server: service provider (server) and requester (client) Server can automatically send information to the Clients (a). Client-Server架構 優點: (i)可以有效的控制整體的流量效率。 (ii)可對使用者進行管控。 (iii)資料容易控管。 缺點: (i) Server會受到很大的負荷。 (ii) 管理集中, 一旦Server壞損, 一切將停擺。 (b). P2P(peer-to-peer) (i) 可以減輕Server的負擔, 讓系統執行更加順暢, 對整個系統而言有相當大 的好處。 (ii)檔案共享可以增加資料的流動性, 使資訊交流加快, 相對代表難以掌控 資料動向。 (iii)使用者完全匿名, 具有隱密性, 相對的代表它無法受到管理。 (i)需要有強大的硬體能力。 (ii)無法具有可管理性, 資料的流通動向、流量難以掌控。 (iii)難以控制。
Server (Program) Architecture: So if a protection operation trips the CB, the only way a Master/Slave would know about it is if the Master, by chance, asks the Slave what is the CB position whilst the CB is still open. If in the meantime there has been an autoreclose before the Master polls for the status, the next request from the Master will result in the Slave simply sending back that the CB is (apparently still) closed - the fact of the CB opening and reclosing is missed. The Master would have to poll other information to eventually detect that a protection trip occurred followed by the reclosure.
Server (Program) Client-Server: P2P: Problem: Scalability and Reliability Heavy Load on Server P2P: Increase speed in system Requires better hardware for each hosts Security issues: confidentiality, malware, traffic 由各方面來看, P2P都是一種未來的趨勢, 由於電腦硬體的急速發展, 不再需要Client-Server架構, 來使減輕Clinet(使用者)方面的負荷, 而且也可以同時解決Server過度負荷的問題, 可以說是一舉數得, 但是這只是用於不需保密的資料交流, P2P可使Clinet保密, 但是卻無法有效的控制資料的流動, (a). Client-Server架構 優點: (i)可以有效的控制整體的流量效率。 (ii)可對使用者進行管控。 (iii)資料容易控管。 缺點: (i) Server會受到很大的負荷。 (ii) 管理集中, 一旦Server壞損, 一切將停擺。 (b). P2P(peer-to-peer) (i) 可以減輕Server的負擔, 讓系統執行更加順暢, 對整個系統而言有相當大 的好處。 (ii)檔案共享可以增加資料的流動性, 使資訊交流加快, 相對代表難以掌控 資料動向。 (iii)使用者完全匿名, 具有隱密性, 相對的代表它無法受到管理。 (iv)每個host硬體提升後的未來趨勢 (i)需要有強大的硬體能力。 (ii)無法具有可管理性, 資料的流通動向、流量難以掌控。 (iii)難以控制。 https://storage.googleapis.com/peer5/Billy/client%20server%20vs%20p2p.png
Server (Program) Daemon ( Demon vs. Daemon XD ) Program that provides a certain service init daemon /etc/init.d/daemon start or stop or status or restart chkconfing daemon on or off systemd systemctl start or stop or status or restart daemon systemctl enable or disable http://daemon.pl/daemon.jpg 系統為了某些功能必須要提供一些服務 (不論是系統本身還是網路方面),這個服務就稱為 service 。 但是 service 的提供總是需要程式的運作吧!否則如何執行呢?所以達成這個 service 的程式我們就稱呼他為 daemon 囉! 系統核心第一支呼叫的程式是 init , 然後 init 去喚起所有的系統所需要的服務 從 CentOS 7.x 以後,Red Hat 系列的 distribution 放棄沿用多年的 System V 開機啟動服務的流程,就是前一小節提到的 init 啟動腳本的方法, 改用 systemd 這個啟動服務管理機制 Pros: 平行處理所有服務,加速開機流程 systemd 全部就是僅有一隻 systemd 服務搭配 systemctl 指令來處理,無須其他額外的指令來支援。不像 systemV 還要 init, chkconfig, service... 等等指令 服務相依性的自我檢查,如果 B 服務是架構在 A 服務上面啟動,systemd 會自動幫你啟動 A 服務喔 將多個 daemons 集合成為一個群組,這個項目主要在設計操作環境的建置 Cons: systemd 也是有些地方無法完全取代 init 僅有 runlevel 1, 3, 5 有對應到 systemd 的某些 target 類型而已 全部的 systemd 都用 systemctl 這個管理程式管理,而 systemctl 支援的語法有限制,systemctl 不可自訂參數
Outline Brief review on Computer Networking Common Services in Clusters High Performance Computing NFS NIS Parallel Computing
Server (Program) DNS Server : Domain Name System DHCP Server : Dynamic Host Configuration NFS Server : Network File System NIS Server : Network Information Service NAT Server : Network Address Translation Web Server: Apache, Nginx Monitoring: collectd, Ganglia 動態主機設定協定(Dynamic Host Configuration Protocol,DHCP)是一個區域網路的網路協定,使用UDP協定工作,主要有兩個用途: 用於內部網路或網路服務供應商自動分配IP位址給用戶 NAT 的全名是 Network Address Translation,字面上的意思是『網路位址的轉換』。由字面上的意思我們來想一想, TCP/IP 的網路封包不是有 IP 位址嗎?那 IP 位址不是有來源與目的嗎?我們的 iptables 指令就能夠修改 IP 封包的表頭資料
Network File System (NFS) Mount Remote File System Deault port 2049 RPC(Remote Procedure Call) Randomly pick free port < 1024 RPC 最主要的功能就是在指定每個 NFS 功能所對應的 port number ,並且回報給用戶端,讓用戶端可以連結到正確的埠口上去
Network File System (NFS) /etc/fstab mount at boot Problem: traffic & lock Autofs mount when access Problem: need root privilege to mount
Network Information Service(NIS) Sun Yellow Pages (yp) Network Information Service 最早應該是稱為 Sun Yellow Pages (簡稱 yp),也就是 Sun 這家公司出的一個名為 Yellow Pages 的伺服器軟體,請注意, NIS 與 YP 是一模一樣的咚咚喔!這個 Yellow Pages 名字取的真是好!怎麼說呢?知道黃頁 (Yellow Pages) 是什麼嗎?就是我們家裡的電話簿啦!
MPI vs. Spark Explosion need in mid-2000 Analyzing internet-scale data and flood of genomics data Scalability, accuracy, large-scale data storage http://www.dursi.ca/hpc-is-dying-and-mpi-is-killing-it/
MPI vs. Spark Explosion need of HPC in mid-2000 Analyzing internet-scale data and flood of genomics data Scalability, accuracy, large-scale data storage http://www.dursi.ca/hpc-is-dying-and-mpi-is-killing-it/
MPI vs. Spark Explosion need in mid-2000 People create new parallel computing stacks HPC Community don’t consider other platforms as "real" high performance computing HPC is wedded to 25-year old technology stack which doesn't meet the needs of those communities
MPI vs. Spark MPI (Message Passing Interface) "killer apps" at initial of cluster computing useful collective operations for sending and receiving messages Why MPI is the wrong tool for today wrong level of abstraction for app writers & tool builders MPI is more than you need for modest levels of parallelism every exchange of data has to be implemented with lovingly hand-crafted sends and receives or gets and puts, is an incredibly awkward fit for numerical application developers, who want to think in terms of distributed arrays, data frames, trees, or hash tables.
MPI vs. Spark API accessibility : Spark > Hadoop > MPI Speed : MPI > Hadoop = Spark Spark is suitable for iterative computation (in memory) e.g. Machine Learning / Data analytics High demand of experts in ML + Distributed Compute every exchange of data has to be implemented with lovingly hand-crafted sends and receives or gets and puts, is an incredibly awkward fit for numerical application developers, who want to think in terms of distributed arrays, data frames, trees, or hash tables.
Reference http://linux.vbird.org/ https://www.server-world.info/en/ http://www.dursi.ca/hpc-is-dying-and-mpi-is-killing-it/