前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇釣魚日記范文,相信會為您的寫作帶來幫助,發現更多的寫作思路和靈感。
春天,河邊一片春天的景象,小鴨在水里洗澡,河邊柳樹吐出了嫩芽,小魚歡快的在水里游動。還有幾位小朋友那這魚竿在小河里釣魚。好一幅生機勃勃的景象。想了解更多相關內容,接下來請欣賞:釣魚初中日記。
釣魚初中日記1今天,一個陽光明媚的星期天,我的心情也十分的愉快,爸爸說:“我們去釣魚吧”!釣魚?怎么釣啊。帶著疑惑的我向爸爸問道。爸爸笑著說:“不用怕,我會教你的”。我聽了感覺非常好奇,所以心里十分的焦急。非常想親身體驗一下這個有趣的事情。
終于等到了這一時刻,我和爸爸“全副武裝”,向公園魚塘進發。看見爸爸拋出線,裝上魚餌,撒入水中。只見爸爸依然坐在那里一動不動。我學著爸爸的樣子,把魚鉤拋入水中。可是過了幾十分鐘,居然還沒有動靜,我有點焦急。那天天氣很熱,爸爸頭上的汗珠正源源不斷的滾落下來。
我平靜了下來,爸爸的魚上鉤了,看見他慢慢收線 ,熟練的操縱著魚桿,是一條大魚。爸爸欣喜若狂。焦急的等待換來了收獲。我的魚鉤依然是老樣子。這次,我徹底的失敗了,心里十分的沮喪,但是仔細一想,這點困難就能嚇倒我嗎?一定不能,我是一個堅強的男子漢。
于是,我再一次拋線,希望這一次不會失敗。父親依然如舊。釣魚就應該有耐心,有毅力,讓自己的心靜下來,經過漫長的等待,終于動了,我立刻拉動魚桿,準備收線,模仿著爸爸剛才的動作,可是一條魚也沒有,只是一根草而已,爸爸看了哈哈大笑,我心如刀割,幾乎都要崩潰了,爸爸鼓勵我:不要怕困難,你總會成功的,相信自己。
通過爸爸剛才的鼓勵,我又精神抖擻,重新站了起來,再一次重復著剛才的動作,我抱著嘗試的心態去釣,希望這次能成功,而此時此刻,心里變得異常冷靜。皇天不負有心人,終于上鉤了,我慢慢收線,小心翼翼的生怕驚跑了魚兒,這次真的是一條大魚,非常的讓我開心,我終于學會了釣魚,爸爸稱贊我有耐心,我也非常的開心,同時也是我最難忘的第一次釣魚。
但同時也讓我明白了失敗是成功之母,不論是做任何事都要有自信,時時刻刻保持這樣的心態。
現在想起時,都會有一陣微微的激動,深深的印在了我的腦海里,終身難忘這一深刻的哲理,令我受益無窮。
釣魚初中日記2上個周末(8月2日星期天),我和爸爸還有幾位叔叔去(渠村)釣魚。
我們開車走了好幾個地方,我都暈車了。我們來到了兩個小池塘,便拋下魚鉤準備開始了。
我們把魚鉤拋進水里,等魚咬鉤。10分鐘過去了,20分鐘過去了,還是沒有魚咬鉤。突然,一位叔叔大喊道:“有魚咬鉤啦!有魚咬鉤啦!”我們便都圍了過去,只見一條又肥又大的黃鯉魚正在吞吃著吃了一半的魚餌,對我們還是若無其事,那條魚占了半個水桶。
接著,一位叔叔跑到了另一個地方釣。那位叔叔真是釣魚高手,每提一次鉤都會釣到條小魚。我和爸爸也學著叔叔的樣子,把魚鉤拋到了池塘,可是好幾次都被草纏住了。總算把鉤拋下去了。可是一上午過去了,就連一個魚頭也沒來要咱們的鉤。
這次釣魚,我們雖然沒有釣到一條,但學會了很多釣魚的經驗。要心平氣和,細心等待,總會有魚來咬你的鉤。
釣魚初中日記3今天,我和弟弟、媽媽去釣魚了。我們一到那兒,我和弟弟就迫不及待地把魚竿拿了出來。
因為我們是第一次釣魚,什么經驗也沒有。所以,我拿起魚食就弄在了鉤子上,一下子把魚鉤甩了下去,左走走,又挪挪,心里不住地祈禱:魚啊魚,趕緊上鉤吧!我親愛的魚!弟弟看著我,也學著我的樣子釣起魚來。結果,你猜怎么著,唉!連一條魚都沒釣上來,讓那些魚白白占了便宜。
我們倆就像一個吃一次飯就能長大的人一樣,心里很急,希望能釣一條大魚讓媽媽看看,我們很了不起的!
媽媽看見我們垂頭喪氣的樣子,就開始安慰我們了:不停地動,能釣上魚來么?你們得靜靜地釣魚。沒聽說過心急吃不了熱豆腐嗎?只要你們有足夠的耐心,才能釣上來大魚。我們倆又安安靜靜地坐下來,誰也不說話,暗暗的憋著一股勁兒,非得釣上來一條大魚不成。哈哈,皇天不負有心人,真的釣上來一條大魚,我和弟弟樂得手舞足蹈,連媽媽也被我們的情緒給感染了,跟著一起樂呵。
經過這次釣魚,我明白了一個道理:無論做什么事,都要去有耐心地去對待。
釣魚初中日記4昨天下午,爸爸帶著我去釣魚。
我們到了釣魚的地方,爸爸讓去搬來凳子,他則幫我穿好了魚線并穿好了蚯蚓,爸爸把魚竿向上一拋,下好鉤了,再把魚竿遞給我。
我拿著魚竿聚精會神的盯著魚漂。突然,魚漂向下一沉,我激動極了,用力向上拉魚竿,可是魚沒有上鉤。一連好幾次我都沒有釣到魚,又傷心又沮喪,快要哭了。爸爸看見了說:“豆豆,不要哭!釣魚要有耐心才行。釣魚的時候要看見魚漂連續的上下浮動,才可以拉魚竿。”我聽了爸爸的話,靜靜的坐在凳子上,當魚漂連續浮動的時候我用力地向上拉,哇,終于釣上來一條魚,我激動地又蹦又跳!我用爸爸教給我的方法,一下子釣上來十一條魚。
天快黑了,我和爸爸帶著我們的勝利果實回家了!
釣魚初中日記5今天我和爸爸去釣魚,到了地方,我就看見人山人海的,我們找到了一個地方,立刻把網兜弄下水去,爸爸又把魚線系在魚竿上,然后,我又將餌料包在鉤外面。
做好了一切準備,我們便開始釣魚了。我等啊等,不一會兒,我便看見魚浮有點搖搖晃晃的樣子,爸爸這時告訴我:“這是小魚們在吃鉤上的餌料,你千萬不能驚動他們,等魚浮下去一大半的時候,你猛地一拉,就能把他們釣上來了。”我便按照爸爸說的話做,果然釣上來了一條又肥又大的魚,爸爸那邊也不甘示弱,正在我拉魚上來的時候,魚也咬了爸爸的鉤,爸爸猛地一拉,一條貪吃的漁也被爸爸釣上來了。
然后,我們又釣了好幾條魚,帶著我們的戰利品回家了。
釣魚初中日記6那天下午,舅舅突然心血來潮的找我一起去釣魚。早就聽說釣魚不僅有趣,而且還能鍛煉人的耐性,我當然就答應了。
來到魚塘,一看見水我便來了興趣,火急火燎的拿著魚竿坐到池塘邊。將魚鉤甩入水中許久,仍然不見有半點變化,拉出來才發現忘了放魚餌。
再次將魚鉤甩入水中后的幾分鐘里,我依然沒有看到任何變化,看看舅舅也是還沒有調到一條小魚,我不耐煩了:“舅舅,這要釣到什么時候了!”舅舅卻只是笑著說了一句:“不急。”是啊,前后好像也只不過十幾分鐘,這我就堅持不住了。
我只好又強迫自己做了下來,心想:釣魚也不過如此,真無聊!大概又過了十幾分鐘,我終于忍不住起身去玩。
不知玩了多長時間,看看舅舅,他已經釣到好幾條魚了,“舅舅,你真了不起,都釣到這么多了!”“沒什么了不起的,”舅舅慢條斯理的說“做什么事只要用心去做,就沒有做不成的,就像這釣魚之所以有能鍛煉耐性,就是因為需要你耐心的等待!”聽了舅舅的話,我慚愧的地下了頭。
我又重新坐到了池塘邊,果不其然,黃昏時分,我的小桶里裝滿了魚。
釣魚初中日記7今天陽光明媚,是個有玩得好時光。我和姐姐一起去太陽島游玩。
看到釣魚池旁熱鬧非凡。我趕忙跑去看只見池里美麗的小魚在歡快地游著。有紅的,有銀的,有黑的。真是漂亮。我便和姐姐去釣魚。我手握魚竿開始釣魚。一只銀色的小魚被我看中。我把魚餌放到小魚的旁邊。小魚游過來就要吃魚餌。因為我第一次釣魚,所以沒等小魚上鉤,我就提起來魚竿了,魚沒鉤著。再去釣時,小魚就不吃我的餌了。只好在釣別的魚。有了第一次的經驗,不一會兒,我就釣上來2條魚。交錢后,我和姐姐提著魚高高興興的回家了。
白酒受制“三公消費”,銷售額“一落千丈”;紅酒僧多粥少,賣酒的比買酒的還多;甚至連常年把持著“中國酒局”的領跑者之一的啤酒,在2014年也首次出現負增長,這是24年來第一次出現這種狀況。但與此同時,預調雞尾酒市場卻逆市增長,且增幅迅猛。據中國釀酒工業協會最新統計,預計2020年預調雞尾酒銷售金額有望超百億元。
一夜之間,這類酒的銷售如火如荼,火遍大江南北,火得莫名其妙。不少業內業外人士都不約而同地針對“預調雞尾酒”列出三大問題:到底什么是RIO預調雞尾酒?它靠什么火起來的?到底還能火多久?
到底什么是預調雞尾酒?
其實,這種洋酒+果汁混合調制的低酒精飲品有著悠久的歷史,在國外被統稱為alcopop。世界上第一瓶調制酒是小花狗檸檬酒,誕生于1993年,由一位澳大利亞人邁克?蓋瑞調制而成。蓋瑞由此大獲成功,這類酒也開始在各國年輕人中盛行。
但在中國,這類酒近年才興起,尚屬于新興酒類。且和國外市場不同的是,目前領軍行業的銳澳(RIO)品牌,打破了國外經營alcopop品牌僅采用單一基酒的限制,率先開創用不同的基酒和不同的果汁混合配制,重新定義了中國的alcopop市場。
中國的alcopop尚沒有明確的統一名稱,有按照飲用口味稱作果味洋酒的,或按照制作方法稱作混搭果酒,多數是根據行業代表品牌銳澳(RIO)的方法稱為“預調雞尾酒”。更多的消費者無法對這個專業感極強的“預調雞尾酒”稱呼產生認知,因此亦有人直接把這種以朗姆、白蘭地、伏特加等烈酒作為基酒,輔以各口味果汁加以調配而成的混搭酒統稱為“RIO酒”。借由行業領軍企業銳澳(RIO)的品牌名來統稱RIO酒,一方面解決了大家對這類酒的認知困擾,另一方面又給這個“舶來品”的酒精類飲料賦予了一種時尚感。
它靠什么火起來的?
RIO預調雞尾酒由無名走向小眾,從小眾邁向大眾,原因有三:首先,主力消費人群的更替。80后、85后甚至20世紀90年代初出生的消費人群已開始逐漸登上“主力消費”的舞臺,他們對新鮮事物的接受、追捧程度早已不是老一輩人所能企及的,因此RIO酒這類專屬年輕人的潮品能夠迅速占領“高地”并非偶然現象。
其次,年輕人口的日益遷移。在北京、上海、廣州、深圳四大城市里,因求學、工作、婚姻而定居的80后、90后年輕人數量占比已超過了土生土長的年輕人。來自五湖四海的人口“混搭”,讓年輕人對于RIO預調酒這類酒傳承國外的交友文化深感認同:無論你來自哪個城市、出身背景如何、經濟收入如何,只要聚在一起喝RIO預調酒,大家就成為朋友,頗有“朋友不問出處”的流行文化色彩。
最后,RIO預調酒對流行文化的借力。近年來,RIO酒中的銳澳(RIO)、冰銳等多家品牌均齊心進軍各大綜藝節目、熱播電視劇,像《奔跑吧,兄弟》《愛情公寓》《天天向上》《何以笙簫默》等。年輕人群不斷受到產品硬性廣告的“地毯式轟炸”,成功引起廣大人群的跟風消費,從而徹底撬動市場,銷售金額呈數倍跳躍式增長也就不足為怪了。
RIO雞尾酒還能火多久?
在快消飲品行業,每年都會出現一些新熱點和新興子行業。比如核桃露、蘋果醋、生榨椰汁等,都會在短時間內達成多輪次的大規模銷售成績,但影響力僅限于行業內,往往都是以曇花一現收尾。回過頭來看RIO預調雞尾酒,筆者也不敢妄自評論,但可以從幾方面的趨勢來衡量這匹“黑馬”的未來發展趨勢:
趨勢一:消費市場潛力巨大
RIO酒走紅時間較短,雖已培育部分粉絲消費者,但作為酒類消費大國和消費人群年輕化基礎,RIO這類代表著時尚、青春、娛樂的形象的酒類尚有巨大潛力用戶可待挖掘。
趨勢二:未來包裝或成取勝關鍵
據相關內部人士透露,RIO酒的消費者中大部分是以18-40歲的女性為主。因為女性喝酒不求喝醉,微醺的狀態是剛剛好的。其次,女性購物的動機有很大一部分取決于這個東西好不好看,目前多家經營預調雞尾酒(RIO酒)的品牌均以繽紛顏色、精致包裝打動年輕女性。
趨勢三:聚會是主要的消費場合
在購買RIO酒的原因投票中,因朋友聚會選擇購買位列第一,隨著混搭交友文化的逐漸盛行,朋友聚會的消費力預估將持續增長。
回過頭來看,預調雞尾酒(RIO酒)市場現階段仍處于藍海狀態,短期來看,像銳澳(RIO)、冰銳、TAKI、紅廣場等十幾家預調雞尾酒(RIO酒)品牌對這塊“藍海蛋糕”本就吃不完。據內部人士爆料,國內幾大傳統飲料和白酒品牌其實早已看中RIO酒這片“藍海”所帶來的豐厚利潤和無限美好的未來發展前景。像五糧液已于2014年推出“德古拉”品牌,古井貢、水井坊也紛紛斥巨資成立子公司。娃哈哈、康師傅等多家傳統飲料企業預計也會在今年年底進軍預調雞尾酒(RIO酒)市場。白酒企業蜂擁而來,可能在進入市場初期的沖擊力略顯疲軟,但隨著后期的投入,勢必會引起新一輪的市場爭奪。由此可見,RIO預調雞尾酒市場出現百家爭鳴的態勢將在未來不久的時間內顯露無遺!
預調酒引各大巨頭競折腰
在今年成都糖酒會上,有近30家預調酒企業亮相。
關鍵詞:GridSim;Dag圖調度;網格計算;網格調度仿真
中圖法分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2011)01-0077-04
GridSim4Dag: A Simulator of Dag Scheduling with GridSim Toolkit
LI Can, DENG Rong
(High Performance Computing Center, Tongji University, Shanghai 201804, China)
Abstract: Since 2002, GridSim, as a popular grid simulator, received much concern for its flexible use and wide range of apply scenarios. However with the limitation of its modeling pattern of task, it is more practical to simulate scheduling of tasks with task pool pattern than tasks of Dag with predecessor-successor relationship. In order to enrich GridSim's simulation functions to better support simulation scheduling of Dag tasks. An improved internal data transfer method P2P (peer-to-peer) is proposed and implemented in this paper and we call the improved GridSim toolkit GridSim4Dag. In the P2P-internal-data-transfer method, predecessor node direct send internal data to successor when it is finished. In this form, we can decrease transmission time, reduce communication cost and lower the transmission error rate. P2P method is not just for scheduling simulation, it can be used in real Grid architectures so that Dag scheduling can be supported better.
Key words: GridSim; Dag scheduling; Grid computing; Grid scheduling simulation
1 概述
隨著P2P網格體系結構的不斷成熟,越來越多的工作流系統不再使用Client-Server的方式運行,而更多的采用有向無環圖(Directed Acyclic Graph,簡稱為Dag)的方式表示工作流系統中各種任務之間的前驅后繼關系[1]。為了能在異構的網格平臺中運行Workflow引擎,我們有必要對Dag圖的各種調度算法進行研究,如HEFT (HeterogeneousCEarliest-Finish-Time ) 算法、CPOP (Critical-Path-on-a-Processor) 算法[1]。然而,網格[3]環境相當復雜,設施相當昂貴,普通研究者根本不可能在真實的網格環境中去研究各種調度算法,加之網格系統本身的不確定性和不可重復性[3],研究者們普遍采用網格模擬器來研究網格的行為,網格模擬器營運而生。
開源的網格仿真器GridSim[4]以其靈活的使用方式和廣闊的應用前景備受網格研究者青睞,在我國,僅2006年至今就有56篇以上的文獻使用該平臺進行仿真實驗[5-7]。
但是,GridSim并不適合Dag的調度,原因在于其提供的任務調度建模方式,是針對任務池型任務的,即所有子任務之間相互獨立,沒有任何前驅后繼的依賴關系。其任務調度的基本思想是: 對每一次仿真,用戶(User Broker)將其中的各子任務順序發送給各資源,資源運行完子任務后將中間結果發回給用戶。然而,對有前驅后繼關系的Dag圖的調度來說,GridSim仍然采用以上的方式來運行,在每一個子任務運行完畢之后,都將其結果發回給用戶,再由用戶將中間結果發送給對應的后繼子任務[4]。這樣,同樣的中間數據可能要在網絡中傳輸兩次或者兩次以上。使用面向任務池任務的調度方式來仿真Dag圖任務的運行存在諸多問題:如通訊開銷大、仿真時間與調度算法計算的理論值不符、出錯率高等。
基于以上分析,本文借鑒peer-to-peer網絡的思想,提出并實現了基于GridSim中Dag圖任務調度的P2P數據傳輸方式,使得Dag圖任務在GridSim中的調度模擬變得更簡便,減小了通訊開銷,同時減少運行時間,降低通訊出錯率,使得可以完全模擬調度算法中對Dag圖子任務的調度。P2P數據傳輸方法的主要思想是:在Dag圖的調度中,每個子任務都保存了其后繼子任務所在的資源信息,當某個前驅子任務運行完畢時,直接將中間結果發送給其后繼子任務所對應的資源,以喚醒其后繼子任務的運行。直到所有的子任務都運行完畢,再將總結果發送給用戶程序。P2P的方式減少了通訊次數和通訊數據量,從而有效地減少了通訊開銷,降低運行時間,降低通訊中數據出錯的幾率。
本文第2節對GridSim的任務調度模型以及其對Dag圖的調度方式進行了詳細的剖析。第3節闡述了P2P數據傳輸方式的基本思想及其運行過程。第4節講述P2P數據傳輸方式在GridSim平臺上的設計與實現。第5節通過一個實例Dag圖,分析其在原始Gridsim下和在改進的P2P傳輸方式下的仿真結果,證明改進的P2P數據傳輸方式的優越性以及實現的正確性。第6節對全文進行總結并提出更進一步研究方向。
2 GridSim任務調度方式
2.1 GridSim普通任務調度模型
在GridSim中,仿真過程如下:首先生成資源實體(Grid Resource Entity)和資源信息服務實體(Grid Information Service Entity);當用戶將任務提交給用戶(User Broker),用戶查詢資源信息服務實體,獲取當前可用資源數量及屬性;用戶再將任務的各子任務分別發送給對應資源,資源執行完子任務后,將結果返還給用戶;待所有子任務執行完畢,用戶分析各子任務運行結果,收集整理,產生最終結果并返回給用戶[8-9]。交互過程如圖1所示。
2.2 GridSim中Dag圖調度模型
由于GridSim的任務調度室針對任務池任務設計的,并沒有對Dag圖的調度做任務特殊的處理,仍然采用普通的調度方式對其仿真。當某個子任務執行完畢之后,中間數據將傳送個用戶,再有用戶將中間結果發送給其后繼子任務所在的資源。如此,同樣的中間數據在整個網絡中傳輸了兩遍,既增加了通訊量,延長了整個Dag圖執行的時間(makespan)[1],同時由于網絡傳送輸的不可靠性,增加了由于數據傳輸出錯而導致整個任務失敗的可能性。
試舉一例,對如圖2所示DAG圖,共有三個資源Res1、Res2和Res3,可供使用。假設,子任務T1調度到Res1上,T2調度上Res2上,T3和T4調度到Res3上。那么,它在原始GridSim中仿真的時序圖如圖3.(a)所示。
其中,當T1執行完畢,將結果D1和D2發送給用戶,用戶再將D1發送到Res2 ,D2發送到Res3以喚醒T2和T3的執行,在T2、T3 執行完之后,分別將D3和D4發送給用戶,用戶將D3,D4發送給Res3以喚醒T4。直到T4在Res3上運行完畢,將最終結果發送給用戶。如此,整個任務執行完畢。以這樣的方式運行,每個中間結果(D1,D2,D3,D4)在網絡上都傳輸了兩遍或,而且傳輸量還會隨著DAG圖復雜性的增長成指數級增長。與此同時,數據傳輸的出錯率被成倍地放大了。
3 P2P數據傳輸模型
對具有前驅后繼依賴關系的Dag圖,用戶只關心整個Dag圖運行的最終結果,并不關心每個子任務執行產生的中間結果。基于此,P2P數據傳輸模型直接將中間數據傳輸給后繼子任務所在資源。從而達到減少通訊開銷,降低通訊出錯率的目的。如圖3(b)所示,在T1運行完畢后直接將中間數據D1和D2發送給Res2和Res3以喚醒T2和T3,當T2運行完畢后,將結果D3發送給Res3以喚醒T4,由于T3和T4同在Res3上執行,故省去D4的傳輸時間。從圖中可知,與GridSim中原始的傳輸方式相比,中間數據D1,D2,D3都只傳輸一次,D4甚至不用傳輸。使用P2P的數據傳輸方式大大降低了通訊開銷、節省了時間、同時也降低了出錯率。
4 GridSim中P2P傳輸模型設計與實現
GridSim仿真平臺包括GridResource,和Grid Information Service(GIS),Gridlet等幾種基本功能元件[1],其中GridResource 模擬網格資源。每個網格資源為一個GridResource對象,含多個同構或異構的處理單元,以時分(time shared)或空分(space shared)的方式為網格中的所有用戶服務。
GIS模擬網格中的目錄服務,是網格的信息中心;所有資源生成之后均需要在GIS上進行登記,供User查詢Gridlet 任務。 GridSim仿真環境將任務建模為Gridlet,包含運算量、輸入數據量和運行完畢后產生的輸出數據量等所有任務屬性。
如圖4中所示,包gridsim中的類為GridSim提供的原始類,為了擴展GridSim以實現P2P的數據傳輸,我們擴展了GridSim提供的原始類,如包daggridsim中所示。其中Edge類對Dag圖中邊建模;DagGridlet 是對Gridlet的擴展,使其包含后繼任務所在資源的信息;DagGridResource是對GridResource的擴展。DagSpaceShared是對AllocPolicy的擴展,子任務的發送方式的修改和中間數據的接受及掛起子任務的喚醒都是在DagSpaceShared中實現的。值得一提的是DagGridSimTags,其中只定義個標記,GRIDLET_DATATRANSEFFER,它表示向資源發送消息的類型為中間數據。
4.1 DagGridlet類
GridSim中,使用Gridlet對象對子任務建模,每個Gridlet包含有GridletLength、GridletFileSize和GridletOutputSize等幾個域,分別表示子任務的計算量,輸入文件大小和輸出數據大小。
分析Gridsim對子任務的建模過程,可以看到其不適合DAG圖調度的根源在于:Gridsim在設計gridlet數據成員時,將子任務的運行參數gridletLength_和輸入輸出參數gridletFileSize_、gridletOutputSize_一一對應捆綁在了一起,從而在邏輯上嚴格對子任務實施了如下限制:
1)每個子任務存在且僅存在唯一的前驅結點、后繼結點,即用戶(實體)。
2)不存在表示當前子任務后繼節點所在的資源信息。
為了能夠使Gridsim工具包能為Dag圖的調度和運行構造仿真環境,特別是創建工作流應用程序的仿真環境。故而本文對Gridsim進行了較大規模的二次開發,將子任務的輸入、輸出參數從gridlet中剝離出來形成新類Edge,用以對Dag圖中的邊建模,令gridlet僅描述與計算相關的子任務屬性;以達到全面仿真Dag圖在分布式環境下運行過程的目的。
Edge作為Gridlet的內部對象,所包含主要屬性包括:
1)destGridlet: 表示此邊的后繼子任務對應的Gridlet編號。
2)destGridResource: 表示此邊后繼子任務所在的資源號
3)size:邊傳輸數據的大小,表示從此結點到后繼結點所需傳輸的數據量,
由以上對邊Edge的定義,我們可以對Gridlet加以改造以適應其在Gridsim中的仿真調度:改造之后的Gridlet我們稱之為DagGridlet,它繼承了原先Gridsim中gridlet的所有屬性及行為,并添加如下主要數據成員:
1)predeceessorNum_: 表示當前子任務結點的前驅子任務任務個數
2)edgeArray_: Edge類型的數組,表示當前節點所有輸出邊的集合。
4.2 P2P數據傳輸方式下Dag圖執行流程
使用Edge對子任務之間邊進行建模,Dag圖的執行可以分為如下步驟:
1)使用靜態調度算法[10]即所謂的表調度算法,為每個子任務分配合適合適的資源,如HEFT (HeterogeneousCEarliest-Finish-Time ) 算法、CPOP ( Critical-Path-on-a-Processor ) 算法[2]。因為,在Gridlet建立時就需要為其每一條邊建立好對應關系,故此處只能使用靜態調度算法,在子任務傳送到各資源之前,就為其分配好每一個子任務所在的資源,以便在建立Dag圖各子任務前驅后繼關系時能在destResource_中填入正確的資源編號。
2)使用對應的調度關系,建立DagGridlet,其中包含有此DagGridlet所對應最優資源的資源號、其與后繼結點之間的邊Edges、此DagGridlet在對應最優資源上的運行時間等信息;
3)將所有的DagGridlet分別發送到各自對應的資源上,我們可以將此步驟定義為部署(ployment);
4)Dag圖各子任務數據傳遞,當一個子任務運行完畢后,將其數據發送給后繼子任務所在的資源并喚醒因等待此子任務而掛起的子任務;
5)當運行到Dag圖的出口結點(可能有多個出口結點)時,子任務將最終結果傳送給用戶(User borker)。
6)用戶根據返回的最終結果,整理產生任務的最終結果,發送個用戶。
在步驟3)中,我們使用帶有GRIDLET_SUBMEIT標記的消息向目標資源發送各子任務,當資源接收到子任務之后,根據其predecessorNum_ 域判斷是否為入口結點(predecessorNum_為0表示無前驅,即為入口結點),否則,則將其掛起,等待其前驅子任務運行完畢后再喚醒它。
在步驟4)中,當某個子任務運行完畢之后,判斷其是否為出口結點(edgeArray_域為空表示沒有輸出邊,即為出口結點)。如果是,則使用帶GRIDLET_RETURN標記的消息將結果發送給用戶;否則,使用帶有GRIDLET_DATATRANSEFFER標記的消息將結果發送給其后繼子任務;而且此時,如果后繼子任務不在當前資源上,則還需考慮通訊開銷;否則,通訊開銷為0。參見如右過程 Procedure 1 finishGridlet()。
資源通過消息標記GRIDLET_DATATRANSFER判斷數據是否是前驅子任務發送的中間結果。如果是,首先獲取數據,然后調用active過程喚醒相應的子任務。具體過程如下頁Procedure 2偽代碼片段。
喚醒子任務函數active的偽代碼如Procedure 3.
5 實驗與分析
考慮運行如下的Dag圖,包括十個子任務,其ID分別從0到9(每個圈代表一個子任務),每條邊上的數字代表兩個子任務之間的通訊量:
假設三個資源分別為P1、P2和P3,各子任務在其上的執行時間如下表如圖5.(b)所示:
使用HEFT算法[2]的靜態調度結果順序如下:n0,n2,n3,n1,n4,n5,n8,n6,n7,n9。各資源上運行的子任務如下:
根據HEFT算法各子任務的開始運行時間和運行結束時間如表2.(a)所示:
表2 兩種方式下各子任務運行開始及結束時間表
從表中可以看出,整個Dag圖運行的makespan是80(秒)。
我們再來看使用GridSim提供的原始方法調度相同的Dag圖,任務使用HEFT算法,得到相同的調度方式:
各子任務的開始時間以及影響其開始執行的限制條件如表2.(b)所示
從以上調度方式的運行時間比較,我們可以看出,在原始的Gridsim中模擬Dag圖的調度,并不能得到理想的結果。按照HEFT[2]算法的調度方法,圖5所示Dag圖的總運行時間(makespan)應為80,然而,如果使用原始的GridSim包進行模擬,得到的結果只會是123。兩種方式下運行圖5所示Dag圖的運行時序圖如圖6所示。
其中,其中箭頭表示子任務在不同的處理器上執行時制約起開始的條件,1號子任務在處理器P1上執行完畢的時刻是40,分配到處理器P2上的8號子任務必須等到時刻56(40+16=56,16為通訊開銷)才能開始執行。(a)表示使用P2P數據傳輸方式的GridSim4Dag中的調度運行時序圖,(b)表示使用GridSim原始的調度方式的運行時序圖,從圖中可以看到,由于中間結果的傳送,增加了通訊開銷,從而增大了整個任務的運行時間。粗箭頭表示兩種運行方式下個子任務之間制約條件的變化。
通過對GridSim底層的修改,實現P2P的數據傳輸方式,運行圖5所示Dag圖的makespan是80,總的周轉時間為:80.01000000000022(所謂周轉時間是指:任務第一個子任務開始運行到最后一個子任務運行完畢所花的時間),與HEFT算法計算出來的理論值吻合。
6 總結與前瞻
本文提出Dag圖在GridSim中運行的一種新的數據傳輸方式,即P2P的方式,并通過對GridSim中代碼的修改,實現GridSim中P2P的中間數據傳輸方式,并通過實驗證實在在改進的GridSim4Dag上仿真Dag圖運行的有效性和正確性。
本文設計實現的P2P中間數據傳輸方式的GridSim4Dag,不僅能擴展GridSim的功能,使其滿足Dag仿真的要求,它更深層次的意義在于它符合Dag圖調度的邏輯,所以可以應用到更多的真實網格系統中,如Globus,Fura等,所以以后還會進一步研究這種Dag圖的調度方式在實際網格中的運行效果,以及其在真實的網格系統中的實現細節。參考文獻:
[1] Z Yu and W Shi.An Adaptive Rescheduling Strategy for Grid Workflow Applications[J].Proc.of IPDPS,2007(3).
[2] Haluk Topcuoglu,Min-You Wu.Performance-Effective and Low-Complexity Task Scheduling for Heterogeneous Computing[J].IEEE Transactions on parallel and distributed system,2002,13(3).
[3] 盧鵬,金海,謝夏,等.關于模擬器的研究[J].高性能計算技術,2005,173(2):5-9.
[4] Forster I,Kesselman C,ed al.The Grid: Blueprint for a Future Computing Infrastructure[M].Morgan Kaufmann:San Mateo,CA,1999.
[5] Rajkumar Buyya,Manzur Murshed.GridSim: a toolkit for the modeling and simulation of distributed resource management and scheduling for Grid computing[J].CONCURRENCY AND COMPUTATION: PRACTICE AND EXPERIENCE Concurrency Computing;Pract.Exper,2002(14):1175-1220.
[6] 劉宴兵,楊茜慧,王文斌.基于GridSim ToolKits的網格仿真環境設計與實現[J].計算機科學,2008,35(6):83-85.
[7] 李炯,盧顯良,董仕.基于GridSim模擬器的網格資源調度算法研究[J].計算機科學,2008,35(8):95-97.
[8] 鄧蓉,陳閎中.GridSim仿真代碼生成器GridSimHelper[J].計算機科學,2010(10).
[9] 董子龍.An Anatomy of GridSim[DB/OL].[2005-06-18].浙江大學CAD&CG實驗室.
為提高我市托幼機構衛生保健工作質量,加強托幼機構衛生保健管理,確保全市兒童身心健康。我們于2008年5月份對轄區內22所托幼機構的衛生保健狀況進行了調查,現報道如下。
1 對象與方法
1.1 調查對象 隨機抽取我市轄區內市直機關幼兒園12所,個體幼兒園10所。
1.2 調查方法 依據國家衛生部、教育委員會制定的《托兒所、幼兒園衛生保健管理辦法》規定要求,采取自制的托有機構衛生保健狀況調查表,由兒童保健專業技術人員深入幼兒園進行實地調查,逐項對照表格認真填寫。
2 結果
2.1 基本情況 隨機抽查的22所幼兒園,登記注冊的20所,未登記注冊的2所(均為個體園),22所幼兒園均為全日制,在園兒童總數為4780人。其中:市直12所幼兒園在園兒童3560人(占74.48%),個體10所幼兒園在園兒童1220人(占25.52%),22所幼兒園在園工作人員655人,其中有保健人員25人。
2.2 衛生保健狀況 在22所幼兒園的衛生保健人員25人中,有專職保健人員14人,兼職保健人員11人,有專業證書或執業證書者7人,在市直12所幼兒園中均設有保健室,并配備有衛生保健所要求的基本用具(體溫表、血壓計、體重計等)和常用藥品。都能按照《托兒所、幼兒園管理辦法》的要求對人園兒童和在園兒童嚴把健康查體關;在10所個體幼兒園中只有專職保健人員3人,只有2所幼兒園有專門的保健室,而且基本的保健用具也不健全,對兒童健康查體要求不規范,有5所幼兒園沒有兒童健康查體檔案。在22所幼兒園中有16所幼兒園對保教人員要求持健康證明書上崗,有4所幼兒園(均為個體園)的保教人員無健康證明書,亦未進行健康查體。22所幼兒園中有11所幼兒園設有專門的隔離室。見表1。
3 討論
本次對我市托幼機構的衛生保健狀況進行調查分析可以看出,市直幼兒園的衛生保健狀況明顯好于個體幼兒園,個體幼兒園的兒童查體率和幼師查體率都明顯低,并且衛生保健設施還有待進一步完善。本次調查結果可為下步托’幼機構衛生保健管理提供依據,制定有效措施,促進全市托有機構的衛生保健管理工作走向正規化規范化。
3.1 主要成績 托幼機構的衛生保健工作得到了各級領導的高度重視和大力支持,絕大部分幼兒園都能認真貫徹《母嬰保健法》和《托兒所、幼兒園衛生保健管理辦法》積極配合婦幼保健部門做好兒童及工作人員的健康查體、疾病防治等工作,降低集體兒童傳染病的發病率,為促進全市兒童的身心健康做出了積極的貢獻。
2.十二點鐘聲響起,又老一歲了,讓人不得不感嘆青春的流逝。耳畔仿佛又響起了那段熟悉的旋律:青春的花開花謝讓我疲憊卻不后悔,感謝爸媽,感謝各位童鞋,感謝有你們。祝自己生日快樂!
3. 愛情到底范了什么錯誤,如果你現在還在我身邊,那么我們現在或許真的很快樂。祝自己生日快樂。
4. 綠色是生命的顏色,綠色的浪漫是生命的浪漫。因此,我選擇了這個綠色的世界,饋贈給我的生日。愿我充滿活力,青春常在。
5. 一個人的生日,一個人的精彩,一個人悄悄上演著華麗,而后是落寂。一個人的生日,屏棄世間的一切誘惑,心靜如塵。祝我生日快樂!
6. 今天是您的生日,愿所有的快樂所有的幸福所有的溫馨所有的好運圍繞在您身邊。生日快樂!
7. 親愛的自己,今天是你的生日,生日快樂,學會聰明一點,不要老是問周圍的人一些很的問題,那真的很無聊。
8.兒的生日,難日…祝自己生日快樂,祝身體健康…感謝父母給了我生命,感謝父母這多年的養育之恩,感謝朋友這多年的陪伴…在自己最幸福的一天,感謝所有人…該長大了……
9. 祝我生日快樂,以后好好珍惜時間,為人類創造價值,還要心疼自己,不可以太勞累,還有,要關心孝順爸爸。
10. 在你生日之際,我只有默默的為你祈禱為你祝福:生日快樂,永遠幸福!
11. 今天是我的誕生日,感謝你們。我愿用自己的許愿流星點燃流星雨,愿天下人人人歡樂。
12. 生日快樂!祝福自己!又長一歲,應該又成熟了許多,不能在浪費光陰了溫柔不帥,祝自己永遠開心快樂,找到幸福。祝我生日快樂!
13. 讓短信載著我的問候,讓字句表達我的祝福,在你生日的今天,我的內心也跟你一樣的歡騰快樂!祝你,生日快樂!
14. 我不能選擇哪最好的,是那最好的選擇了我。祝自己生日快樂。
15. 所謂快樂,就是做了有意義的事情而從內心倍感滿足!而不是嘲笑哪個人而感到開心,那只是讓人覺得愚昧的笑。祝自己生日快樂。
16.親愛的自己,今天是你的生日,生日快樂,不要太低調了,有時要強悍一點,被欺負的時候,一定要討回來!但是一定不要記恨,小人之見隨他們去好了,憐憫會使你高貴。
17.我只知道,我喜歡上了這種感覺,讓人心痛壓抑寂寞無耐。回想起往日的種種還記憶猶新,可能有些事真的一輩子都忘不了,只能感嘆年少無知,卻又讓人無可奈何。
18. 自己的生日同樣祝福自己的親人有生的日子天天快樂!祝福所有的朋友們分享我的快樂,永遠也快樂!
19. 在這個屬于我最燦爛的日子里,我誠摯的送上一句最古老但又是最新鮮出爐的生日祝福:生日快樂!終身美麗!
20. 紙張有些破舊,有些模糊。可每一筆勾勒,每一抹痕跡,似乎都記載著跨越萬載的思念。祝自己生日快樂。
21. 嬌艷的鮮花,已為你開放;美好的日子,已悄悄來臨。祝我生日快樂!
22. 用我滿懷的愛,祝你生日快樂,是你使我的生活有了意義,我對你的情無法用言語表達,想與你共度生命每一天。
23. 要留下人生足跡,就必須一步一個腳印;要少走人生彎路,就必須三思而行。祝自己生日快樂。
24. 一個人的生日,沒有生糕,沒有燭光晚餐,沒有人為我唱著情歌,我的寂寞,散布每一個角落,只有跟自己說“生日快樂”!
25. 畢竟是生日,所以今天是個特別的日子,要開開心心過好這一天。朋友們,祝福我吧。
26. 想念的話,說也說不完,關懷的心,永遠不改變。一串真摯的祝福,一個不平凡的心意,衷心地祝愿你生日快樂!
27. 今天使你的生日,你不再我的眼前。在這春日的風里,做一只風箏送你,載有我無盡的思念。
28. 鳥兒愿為一朵云,云兒愿為一只鳥。祝自己生日快樂。
29. 送上一份生日禮物,它是我內心深處的是生日祝福,祝我生日快樂,歲歲平安!
30. 快樂像陽光,像雨露,播撒在世界的每一個角落;像清風,像霧嵐,縈繞在我們身邊。快樂無處不在。祝自己生日快樂。
31. 縱然傷心,也不要愁眉不展,因為你不知是誰會愛的笑容。祝自己生日快樂。
32. 送我自己的是幾度春秋,留下來的卻是屬于大家的那份最真摯的友誼!
33. 生活就像萬花筒,繽紛精彩,于是便有了那些所謂的快樂,幸福。祝自己生日快樂。
34.今天是我的生日,首先祝自己生日快樂,不知不覺生命的年輪又在時空中一劃過了一年,又老了一歲,呵呵…感謝友友們給我送來的祝福,讓我感受到了人間的溫暖,友情的可貴,祝愿我的朋友們永遠幸福安康!
35. 不是每天都能過生日,希望我今天生日快樂,愿你年年歲歲幸福永伴!
36. 親愛的自己,今天是你的生日,生日快樂,記得要常常仰望天空,記住仰望天空的時候也要看看腳下。
37. 所以別吝嗇你的一句祝福,雖然很簡短,卻拉近了你我的心!
38. 祝自己生日快樂,一年又一年希望自己是離夢想越來越近,而不是越來越遠!
39.有一句話說得好,叫樂此不疲,也就是說:做自己感覺有樂趣的事情,那么自然不會感覺疲憊和勞累,快樂無國界。快樂的詞匯里沒有貧富,尊卑,權勢之分。快樂來源于每個生靈最美好的天性。祝自己生日快樂。
40. 開朗的性格不僅可以使自己經常保持心情的愉快,而且可以感染你周圍的人們,使他們也覺得人生充滿了和諧與光明。祝自己生日快樂。
41.生日快樂,所以,未來的日子里,我要快樂,要讓生活充滿陽光,要實現我所有的夢想,要盡全力讓所有愛我的和我愛的人快樂。我要成長,要學會體諒和承擔,要懂得如何善解人意而不再任意妄為,要讓生活簡單純凈。我要忘記悲傷不再寂寞,要學著在難過和寂寞的時候找到快樂和欣然。我要堅持我自己的信念,肯定自己的力量和能力,堅信我的夢想經過努力后一定會成為現實,不畏懼所有懷疑和阻礙,我要努力讓我的未來更加明朗更加美好。
42. 親愛的自己,今天是你的生日,生日快樂,記得要常常仰望天空,記住仰望天空的時候也要看看腳下。
43.我今天的早餐是昨天的隔夜餐,中餐是自己一個人做一個吃的,晚餐是豬腸粉。不要為我難過,因為至少臨睡前我陸續從短信電話微博里得到部分真心人的祝福了,盡管跟你的守護者的人數比起來是億萬分之一,我還是覺得比去年今天幸福多了。
44. 又長了一歲了,希望能讓自己變得成熟點,變得更幸福點,如果能減肥點,再加變得漂亮點就更好了!呵呵!其實生活是自己的,快樂和幸福都取決去自己吧!
45. 最美麗的日子,最可愛的你,最完美的禮物,最快樂的相遇,最精彩的做自己,最幸福的全給你,最好是你的心事都如意。生日快樂。
46.一個人要學會遺忘自己的成績,有些人稍微做了一點成績就驕傲起來,沾沾自喜,這顯然是造成失敗的一個原因。成績只是過去,要一切從零開始,那樣才能跨越人生新的境界。
47. 一個人的生日,沒有生糕,沒有燭光晚餐,沒有人為我唱著情歌,我的寂寞,散布每一個角落,只有跟自己說生日快樂!
48. 愿你宿愿得償,快樂幸福更勝以往。
49. 人生苦短,別對自己吝嗇一句祝福,對著天空大喊:祝我生日快樂!
50. 也許今天有很多人過生日,但每個人每一年的生日都只有一次,所以我告訴自己每一年的今天都要祝你生日快樂!
51.今天是我的生日,期盼已久的日子,先祝自己生日快樂!不知不覺,生命的年輪又在時空中劃過了一年,換言而之,是又向生命的終點邁進了一步。驀然回首生命中歷經的二十多年的酸甜苦辣,才發現時光飛逝,時轉流速。此刻,我告訴自己,不去回憶過去的苦與痛,流水的年華會幫我帶走記憶中開心的難過的痛苦壓抑或幸福。
52.在時光變化莫測中,感情的沙灘上涌動的是溫熱的潮汐。都說往事如風,輕薄的風兒豈能知曉往事的厚重。都說往事如煙,輕浮的煙云散盡,卻散不盡往事的雋永悠長。正是如此我才明白,今天是多么的重要,不僅僅是因為今天是我生日,而是每一個今天都很重要,過去的無法改變,將來的無法,我能做什么呢?我能做的就是做好今天的事。
53.每年的這個時刻你都會許個愿,雖然去年的愿望今年看來并沒有實現,你依然是一個人在孤獨中飄泊地走啊走啊,為自己的心找一個家,卻不知家在何處,何處是家?知道你有點難過,但是親愛的,別哭。生命中的那個人,總會遇見的,既使遇不到,你的人生難道就不能在缺憾中活著一份精彩了嗎?所以咱不必悲傷,俗話說:苦生苦,樂生樂,咱要修來個好心態,這樣再不好的日子都可以從從容容地過。多好。
54.可別沖我瞪眼,一瞪眼你那雙美麗的眼睛就成獅子眼了,難看死了!可也別憂愁,愁起來也不好看象個老太!雖說真誠的人內心往往有許多悲哀,但是親愛的,我寧愿你保持你的真誠到永遠,并且定會收獲更多的感動與歡喜,來溫暖自己。
55. 時間如流水,又要迎來歲的生日了,應該說是長大了一歲,還是說老了。
56. 南瓜。我就知道你一直是好樣的。現在咱靜下心來許個愿吧。為新的一年新的開始。
57.人的一生并不都是一帆風順,有歡笑也有眼淚,有失落也有收獲,會遇到挫折,也會經歷失敗,關鍵是不能被失敗,勇敢的繼續往前走,總會有光明的前途。人生,不管是誰,都不可能一帆風順,很多看上去讓你不順的逆境都將在你不知道的將來成為引以為傲的財富。
58.隨著現實觀念的增強,這個社會物欲橫生,爾虞我詐,其實大可不必大富大貴,披金戴銀,但是對于那份靜謐,那份舒心,那份愜意的追求,應當是永無休止。
59. 祝我生日快樂,以后好好珍惜時間,為人類創造價值,還要心疼自己,不可以太勞累,還有,要關心孝順爸爸。
60. 回首以往,我們漸漸認識到,是這些眾多的生日使我們寬厚仁愛,更增智慧,年齡的增長使心境愈趨寧靜。祝我生日快樂!
61. 要想撬起世界,它的最佳支點不是整個地球,不是一個國家一個民族,也不是別人,而只能是自己的心靈。
62. 不是每天都能過生日,希望我今天生日快樂,愿你年年歲歲幸福永伴!
63.親愛的自己,今天是你的生日,生日快樂,不要太低調了,有時要強悍一點,被欺負的時候,一定要討回來!但是一定不要記恨,小人之見隨他們去好了,憐憫會使你高貴。
64. 要學會遺忘,用理智過濾去自己思想上的雜質,保留真誠的情感,它會教你陶冶情操。只有善于遺忘,才能更好地保留人生最美好的回憶。
65. 所以別吝嗇你的一句祝福,雖然很簡短,卻拉近了你我的心!
66.出來工作幾年了。很多朋友和同學都沒怎么聯系。一年到頭還打不了兩個電話。整天都是忙著上班工作。每天為生計奔波。每天習慣了一個人,很久沒聯系的老朋友。卻都在今天我生日的這個日子。給我發來了短信。送來了祝福。我以為我的生日沒人知道,原來她們都記得。我很感動。
67. 愿你的生日充滿無窮的快樂,愿你今天的回憶溫馨,愿你今天的夢想甜美,愿你這一年稱心如意!
68.人的一生并不都是一帆風順,有歡笑也有眼淚,有失落也有收獲,會遇到挫折,也會經歷失敗,關鍵是不能被失敗,勇敢的繼續往前走,總會有光明的前途。人生,不管是誰,都不可能一帆風順,很多看上去讓你不順的逆境都將在你不知道的將來成為引以為傲的財富。
69. 耳畔傳來的音樂已經聽不清楚,越來越模煳,越來越遠。一個沒有燭光,沒有祝福的——我的生日,任由我自己一個人在寂寞中度過。
70. 想念的話,說也說不完,關懷的心,永遠不改變。一串真摯的祝福,一個不平凡的心意,衷心地祝愿你生日快樂!
71.可別沖我瞪眼,一瞪眼你那雙美麗的眼睛就成獅子眼了,難看死了!可也別憂愁,愁起來也不好看象個老太!雖說真誠的人內心往往有許多悲哀,但是親愛的,我寧愿你保持你的真誠到永遠,并且定會收獲更多的感動與歡喜,來溫暖自己。
72.我知道自己在你心中最重要,可你卻這樣狠心傷害我,不一會你就會感覺神清氣爽,精神百倍。這個就是快樂,生日快樂!
73.傻就傻唄,我知道你常愛罵自己傻,不太懂得世俗間的人情世故,也不會聽音兒說話,活得個再簡單不過了,但說不定這也是你的福祉所在哦。現在的聰明人太多,你且反其道行之吧,就做個糊里糊涂的傻子,過簡單而快樂的日子,也是不錯。
74. 年年生日來而復去,留下永久的快樂回憶。愿今天的每時每刻都充滿明媚,似陽光普照鮮花綻放!
75. 又是一個美好的開始,愿我虔誠的祝福,帶給我成功的一年,祝我生日快樂!
76. 溫馨的燭光為你點亮,腦海浮現昔日的時光;把雙手緊緊握在胸膛;默默為自己許下愿望;愿祝福的短信都成真;愿生日的快樂永在心。
77. 生辰,對于每個人都是唯一的,他是我們生命開始的象征,在我們慶祝的同時,請不要忘了對愛自己的母親道一聲辛苦了,為了父母也一定要幸福!
78. 一個人的生日,一個人的精彩,一個人悄悄上演著華麗,而后是落寂。一個人的生日,心靜如塵。祝我生日快樂!