成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

OptaPlanner - 把example運(yùn)行起來(運(yùn)行并淺析Cloud balancing)

Half / 3127人閱讀

摘要:后來我用的示例可以正常運(yùn)行起來了。運(yùn)行示例我們選擇一個(gè)比較經(jīng)典的示例運(yùn)行一下看看。軟性要求任何一臺(tái)一旦有任務(wù)分配進(jìn)去,即表示該被占用,需計(jì)算這臺(tái)的成本。討論組屬于郵件列表,國(guó)內(nèi)網(wǎng)絡(luò)可能較難訪問,需自行解決

經(jīng)過上面篇長(zhǎng)篇大論的理論之后,在開始講解Optaplanner相關(guān)基本概念及用法之前,我們先把他們提供的示例運(yùn)行起來,好先讓大家看看它是如何工作的。OptaPlanner的優(yōu)點(diǎn)不僅僅是提供詳細(xì)豐富的文檔 ,還為各種應(yīng)用場(chǎng)景提供豐富的示例,它的文檔里都是以幾個(gè)簡(jiǎn)單經(jīng)典的例子來說名各種功能特征和深層次概念的,例如Solver, Phase及Move等,以下我們就先把這些示例運(yùn)行起來,先看看整體的情況,下一往篇我們?cè)侔咽纠脑创a導(dǎo)進(jìn)Eclipse,拿一個(gè)簡(jiǎn)單經(jīng)典的示例,講解一下Optaplanner規(guī)劃引擎工作時(shí)需要哪些要素,它是如何工作的。

1.下載:

  首先得把示例下載回來,大家到Optaplanner的官網(wǎng)就可以看到一個(gè)綠色的按鈕(見下圖),點(diǎn)擊它就可以下載了。它的版本更新非??欤覀兙突?.6.0Final進(jìn)行講解。
圖片描述

解壓:

下載回來的壓縮包“optaplanner-distribution-7.6.0.Final.zip”包含了Optaplanner的源碼、各種包(引擎自己的核心包及其依賴包)、說明文件和示例及其源碼。其中示例包括兩個(gè)版本,一個(gè)是基礎(chǔ)Swing的,也就是Java的Windows程序;另一個(gè)是基于Web的,以War包提供,需要自己部署Tomcat等App服務(wù)器來運(yùn)行。我們著重討論Swing版本的,因?yàn)樗恍枰覀儾渴餉pp服務(wù)器。如果以后大家有需要,我可以另寫一篇專門部署Web版本示例的文章詳細(xì)講解。打開壓縮包,里面的文件夾結(jié)構(gòu)如下圖:
圖片描述

試運(yùn)行示例:

因?yàn)閴嚎s包中除了提供源碼,還提供了已編譯的包,只要在你系統(tǒng)中安裝好Java環(huán)境,就可以運(yùn)行起來,先看個(gè)究竟了。ps:java要1.8以上。

3.1: 解壓示例文件:
你會(huì)看到一個(gè)包文件夾(binaries),一個(gè)源碼文件夾(sources),一個(gè)windows批處理命令文件(runExamples.bat)和一個(gè)Linux下運(yùn)行示例的Shell文件      (runExamples.sh). 因?yàn)槲沂窃赪indows環(huán)境下運(yùn)行的,所以把binaries和runExamples.bat解壓出來放在同一文件夾即可,examples子文件夾中的目錄結(jié)構(gòu)如下圖。
圖片描述

3.2 運(yùn)行示例:
如果windows下使用cmd不太熟悉的話,就按我下面的步驟操作.完成之后就可以看到它示例的真容了。示例程序是基于Swing做的,理論上通過里面的批處理文件就可以運(yùn)行起來,其實(shí)里面就是一些運(yùn)行jar包的命令,只不過它會(huì)有更多的功能,例如檢查當(dāng)前系統(tǒng)的JRE等等。不過中間有點(diǎn)小插曲,我使用7.6.0的示例運(yùn)行的時(shí)候,它報(bào)了一個(gè)slf4j找不到的異常,應(yīng)該是一個(gè)日志組件缺少了,我要看看它這個(gè)版本的更新記錄,看是否有相關(guān)的提示,否則我得聯(lián)系一下他們項(xiàng)目組的人才行。后來我用7.5.0Final的示例可以正常運(yùn)行起來了。

圖片描述

通過鼠標(biāo)右鍵調(diào)出CMD

圖片描述
運(yùn)行示例批處理文件
圖片描述

多達(dá)18個(gè)示例,最簡(jiǎn)單的N王后問題,到復(fù)雜的車輛路線規(guī)劃問題.
7.5.0版本提供了18個(gè)示例,已經(jīng) 包含了幾乎所有Optaplanner規(guī)劃引擎具有的特性及應(yīng)用模式。但其實(shí)在他們的Github中提供了更多的示例,有興趣的同學(xué)可以關(guān)注一下Github上optaplanner項(xiàng)目的leader Geoffrey De Smit,他現(xiàn)在是Optaplanner項(xiàng)目的頭兒,也是Optaplanner的作者,10多年前他開發(fā)了Optaplanner,前些年他把它貢獻(xiàn)給了JBoss開源社區(qū),任這個(gè)項(xiàng)目的頭兒。我在使用Optaplanner做項(xiàng)目的時(shí)候,他們的討論組上向他提過一些問題,他為人相當(dāng)nice且有耐心,給我解答了不少問題。

3.3 運(yùn)行示例:
 我們選擇一個(gè)比較經(jīng)典的Cloud balancing示例運(yùn)行一下看看。

先說明一下這個(gè)示例,這個(gè)示例是模擬在云端進(jìn)行進(jìn)程管理(或稱進(jìn)程調(diào)度,或稱任務(wù)調(diào)度吧),也就是進(jìn)程分配到不同的計(jì)算資源(也就是計(jì)算機(jī))的方案,演示Optaplanner規(guī)劃引擎是如何在保證每個(gè)進(jìn)程都滿足運(yùn)行要求的情況下,以最節(jié)省成本的方式分配計(jì)算機(jī)資源的。

示例中有兩個(gè)主要實(shí)體概念 - 進(jìn)程(Process,下面跟著官方文檔稱Process吧, 可以理解為我們的程序,或任務(wù))和Computer(也就是我們理解的計(jì)算機(jī)、服務(wù)器了)。每個(gè)Process有CPU速度,內(nèi)存大小和網(wǎng)絡(luò)帶寬三大要求。對(duì)應(yīng)地,每臺(tái)Computer也有一個(gè)固定的參數(shù),表明該Computer可提供的CPU速度、內(nèi)存大小和帶寬;Computer另外還有一個(gè)屬性就是成本。也就是這臺(tái)電腦一但被使用了,就需要花費(fèi)成本去維護(hù)。這個(gè)示例的目標(biāo)是:給出一些Process和一些Computer,Optaplanner規(guī)劃引擎在對(duì)這些實(shí)體進(jìn)行對(duì)比運(yùn)算,將所有Process分配到指定的一臺(tái)Computer, 這個(gè)分配方案有兩個(gè)要求:

1.硬性要求: Process所分配到的Computer必然滿足CPU,內(nèi)存和帶寬三大要求要求。ps:當(dāng)多個(gè)Process被分配到同一個(gè)Computer時(shí),它的CPU,內(nèi)存和帶寬資源占用是累加的,也就是說,當(dāng)臺(tái)Computer只有2G內(nèi)存,若已經(jīng)有一個(gè)內(nèi)存需求是1G的Process被分配在它上面,那后面可以再分配給它的Process,其內(nèi)存要求必然是1G以下的,因?yàn)檫@進(jìn)修這臺(tái)Computer還只剩下1G內(nèi)存了,CPU和帶寬也是同樣的分配規(guī)則。

軟性要求:任何一臺(tái)Computer一旦有任務(wù)分配進(jìn)去,即表示該Computer被占用,需計(jì)算這臺(tái)Computer的成本。Optaplanner規(guī)劃引擎需要找找出一個(gè)方案,在滿足了第1點(diǎn)的硬性要求的前提下,令到這所有被占用的Computer的成本加起來盡量小(為什么不能說最小呢?因?yàn)檫@是一個(gè)NPC問題,不一定可以找到成本最小的,也就是 說不一定能找到最佳方案的,詳情參考本系列文章中,關(guān)于規(guī)則問題與NP, NPC問題的篇章).

  下圖是我進(jìn)入這個(gè)示例后,選擇了9個(gè)Processes分配到3臺(tái)Computers上的示例。Optaplanner的示例程序都提供這些示例的相關(guān)數(shù)據(jù),只要選擇就可以了,所以還是比較貼心的,但我們自己做項(xiàng)目過程中,去生成、處理這些數(shù)據(jù)的工作量,就點(diǎn)了系統(tǒng)的不少比例了。

圖片描述
Cloud balancing示例中Process與Computer信息
圖片描述
每個(gè)Process對(duì)計(jì)算資源的要求
3.4. 運(yùn)行并解讀示例:
點(diǎn)擊頂端的Solve按鈕,引擎就開始工作,它會(huì)不斷嘗試不同的組合方案(這是一個(gè)非常復(fù)雜的過程,涉及到中種搜索算法Tabu,模擬退火等),找到既滿足Process對(duì)CPU、內(nèi)存和帶寬的要求,且所使用的所有Computer中,成本加起來盡量小。下面就是運(yùn)行了一段時(shí)間之后,9個(gè)Process分配到了兩個(gè)Computer的情況。所得的方案的好壞,是通過評(píng)分來實(shí)現(xiàn)的,關(guān)于評(píng)分,可以查看后面Optaplanner規(guī)劃引擎關(guān)于分?jǐn)?shù)方面的文章。

圖片描述
運(yùn)行結(jié)果,以硬分?jǐn)?shù)(反映資源敏合度)和軟分?jǐn)?shù)(反映成本)組成。
  好了,到目前為止我們已經(jīng)初成功能運(yùn)行起了它的示例,大家也可以嘗試一下其它示例,各個(gè)示例的背景,可以到Optaplanner官網(wǎng)關(guān)于示例的章節(jié)中查看。我在后面的文章中,也會(huì)找?guī)讉€(gè)具代表性的示例進(jìn)行翻譯。

在下一篇,我們就要用這個(gè)示例的源碼生成Eclipse中項(xiàng)目,好讓大家可以更深入具體了解Optaplanner的實(shí)現(xiàn)。

謝謝。

End.

Optaplanner開源規(guī)劃引擎地址:www.optaplanner.org

*如需了解更多關(guān)于Optaplanner的應(yīng)用,請(qǐng)發(fā)電郵致:[email protected]
或到討論組發(fā)表你的意見:https://groups.google.com/for...
若有需要可添加本人微信(13631823503)或QQ(12977379)實(shí)時(shí)溝通,但因本人日常工作繁忙,通過微信,QQ等工具可能無法深入溝通,較復(fù)雜的問題,建議以郵件或討論組方式提出。(討論組屬于google郵件列表,國(guó)內(nèi)網(wǎng)絡(luò)可能較難訪問,需自行解決)*

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/19980.html

相關(guān)文章

  • 淺嘗一個(gè)排程引擎Optaplanner - 前序

    摘要:近些年一直在制造業(yè),做過,當(dāng)過小組負(fù)責(zé)人。要滿足智能制造中,實(shí)現(xiàn)對(duì)機(jī)臺(tái)進(jìn)行分鐘級(jí)甚至秒級(jí)的生產(chǎn)指令下達(dá)。這個(gè)核心是怎么實(shí)現(xiàn)的呢那就需要一個(gè)很牛的引擎。事實(shí)上業(yè)務(wù)規(guī)則分兩種,很多個(gè)層次。這個(gè)時(shí)候排程引擎就派上用場(chǎng)了。   當(dāng)碼農(nóng)有10多年了,由建筑行業(yè)軟件,各種MIS,通用物流定制平臺(tái),CCTV客戶端(是閉路電視,不是央視喔)啥都做過。最后小試一下創(chuàng)業(yè),不過那都是鬧著玩的,不到一年就回到...

    OBKoro1 評(píng)論0 收藏0
  • 使用Kubernetes和TensorFlow Serving將神經(jīng)網(wǎng)絡(luò)鏡像分類進(jìn)行彈性擴(kuò)容

    摘要:大會(huì)以機(jī)器學(xué)習(xí)資料中心和云端安全為主要議題,為未來發(fā)展做戰(zhàn)略規(guī)劃。在年,谷歌開發(fā)了一個(gè)內(nèi)部深度學(xué)習(xí)基礎(chǔ)設(shè)施叫做,這個(gè)設(shè)施允許谷歌人創(chuàng)建更大的神經(jīng)網(wǎng)絡(luò)和擴(kuò)容實(shí)訓(xùn)成千上萬個(gè)核心。 導(dǎo)言 Google近日3月23-24日在美國(guó)舊金山舉辦首次谷歌云平臺(tái)(Google Cloud Platform) GCP NEXT大會(huì),參會(huì)人數(shù)超過2000人。GCP NEXT大會(huì)以機(jī)器學(xué)習(xí)、資料中心和云端安全...

    Harpsichord1207 評(píng)論0 收藏0
  • #yyds干貨盤點(diǎn)# Spring Boot的前世今生以及它和Spring Cloud的關(guān)系詳解。

    摘要:經(jīng)過年時(shí)間的發(fā)展,到目前為止,最新穩(wěn)定版為版本。的發(fā)展剛出生的時(shí)候,引起了很多開源社區(qū)的關(guān)注,并且也有個(gè)人和企業(yè)開始嘗試使用。通過項(xiàng)目搭建過程來對(duì)比的差異和優(yōu)勢(shì)。當(dāng)然它的作用不僅于此,后續(xù)會(huì)逐步揭開它的真實(shí)面目。而和就相當(dāng)于當(dāng)年的和的關(guān)系。 要了解Spring Boot的發(fā)展背景,還得從2004年Spring ...

    番茄西紅柿 評(píng)論0 收藏2637
  • 從云的起源淺析國(guó)內(nèi)云平臺(tái)的現(xiàn)狀和未來

    摘要:越來越多的各類信息系統(tǒng)和信息終端將依托云計(jì)算平臺(tái)而存在,越來越多的研發(fā)和業(yè)務(wù)流程將依托云計(jì)算平臺(tái)來支撐。介紹了這么多國(guó)外云計(jì)算的背景,是因?yàn)?,?guó)內(nèi)云計(jì)算服務(wù)提供商都是學(xué)習(xí)仿照亞馬遜等公司的云計(jì)算服務(wù)產(chǎn)品的。 云計(jì)算一詞源自2006年8月9日,Google首席執(zhí)行官Eric Schmidt在搜索引擎大會(huì)上首次提出了云計(jì)算(Cloud Computing)的概念。云計(jì)算目前還沒有公認(rèn)的定義。美...

    aaron 評(píng)論0 收藏0
  • Spring Cloud 參考文檔(客戶端負(fù)載均衡器:Ribbon)

    摘要:客戶端負(fù)載均衡器是一個(gè)客戶端負(fù)載均衡器,可以讓你對(duì)和客戶端的行為進(jìn)行大量控制,已經(jīng)使用了,因此,如果你使用,此部分也適用。 客戶端負(fù)載均衡器:Ribbon Ribbon是一個(gè)客戶端負(fù)載均衡器,可以讓你對(duì)HTTP和TCP客戶端的行為進(jìn)行大量控制,F(xiàn)eign已經(jīng)使用了Ribbon,因此,如果你使用@FeignClient,此部分也適用。 Ribbon中的一個(gè)核心概念是命名客戶端,每個(gè)負(fù)載均...

    Songlcy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<