วันพฤหัสบดีที่ 15 มีนาคม พ.ศ. 2561

Simulation


Introduction: Parallel & Distributed Simulation Systems


หลักการทำงานพื้นฐานของระบบ Simulation
Simulation  คือ การนำเสนอหรือการจำลองลักษณะของระบบอื่นๆตลอดช่วงเวลาที่สนใจ ซึ่งในกรณีที่กล่าวถึง Computer simulation จะหมายถึงโปรแกรมคอมพิวเตอร์ที่จำลองการทำงานของระบบที่สนใจ

Computer Simulation Fundamental
1)     Computer Simulation คือ โปรแกรมคอมพิวเตอร์ที่จำลองลักษณะการทำงานของโปรแกรมที่สนใจตลอดเวลาหรือเฉพาะช่วงเวลาที่ให้ความสนใจ
2)     Program variables หรือ State variables เป็นตัวแปรซึ่งใช้เป็นสื่อกลางในการแสดงถึงสถานะปัจจุบันของระบบที่จำลอง
3)     Simulation Program จะปรับเปลี่ยนค่าของ state variable เพื่อที่จะพัฒนาแบบจำลองไปตามช่วงเวลาที่เปลี่ยนแปลงไปเรื่อยๆ
4)     รูปแบบของเวลาที่มีการใช้งานในระบบ Simulation
·      เวลาที่ระบบต้นแบบใช้ในการทำงาน ( Physical Time ) คือ เวลาที่ระบบต้นแบบหรือระบบจริงใช้ในการทำงานดังกล่าวที่จะนำมาทำเป็นแบบจำลองจริง เช่น การทำแบบจำลองเพื่อแสดงการขึ้น-ลงของเครื่องบินตั้งแต่เวลาเที่ยงวันที่ 14 มกราคม 2545 จนกระทั่งถึงเวลาเที่ยงของวันที่ 15 มกราคม 2545 จะได้ว่า ช่วงเวลาตั้งแต่เวลาเที่ยงวันที่ 14 มกราคม 2545 จนกระทั่งถึงเวลาเที่ยงของวันที่ 15 มกราคม 2545 เป็นเวลาของ Physical Time
·      เวลาที่เลื่อนไปในแบบจำลอง ( Simulation Time ) คือ เวลาที่แบบจำลองใช้ในการทำงานเพื่อจำลองระบบ ซึ่งเวลาดังกล่าวจะมีความสัมพันธ์กับเวลาที่ระบบต้นแบบใช้ในการทำงานจริง ( Physical Time ) เช่น เวลาในแบบจำลองเป็น 9.0 จะหมายถึงเวลา 9.00 น. ในระบบจริง และหนึ่งหน่วย ( 1.0 ) ของเวลาที่เลื่อนไปในแบบจำลองจะหมายถึงเวลา 1 ชั่วโมงที่เลื่อนไปในระบบจริง
·      เวลาที่เลื่อนไปในความเป็นจริง ( Wallclock Time ) คือ เวลาที่เลื่อนไปในความเป็นจริง ( เหมือนกับเวลาที่แสดงโดยนาฬิกา ) ในระหว่างที่แบบจำลองมีกำลังทำงาน เช่น แบบจำลองเริ่มต้นทำงานที่เวลา 10.00 น. จนกระทั่งถึงเวลา 12.00 น. ในวันที่ 10 มกราคม 2545
5)     ลักษณะการทำงานของระบบ Simulation เมื่อแบ่งตามเวลาในการทำงาน จะมี 3 รูปแบบ คือ
·            As-fast-as-possible execution คือ การทำงานของแบบจำลองจะทำงานไปด้วยความเร็วสูงสุดเท่าที่จะเป็นไปได้โดยไม่สัมพันธ์เวลาที่เลื่อนไปในโลกของความเป็นจริง หรือ การทำงานจะไม่ขึ้นกับเวลาที่ใช้ในการทำงาน  ( แต่ยังคงสัมพันธ์กับเวลาที่ระบบต้นแบบใช้ในการทำงาน )
·            Real time execution คือ การทำงานของแบบจำลองจะมีความสัมพันธ์กับเวลาจริงที่ใช้ในการทำงานของแบบจำลอง เช่น โปรแกรมหรือแบบจำลองใช้เวลาในการทำงานตามความเป็นจริงไปเป็นเวลา 15 นาที ดังนั้นเวลาที่เลื่อนไปในแบบจำลองก็จะเท่ากับ 15 นาทีด้วย
·            Scalable real-time execution คือ การทำงานจะมีความสัมพันธ์กับเวลาจริงที่ใช้ในการทำงานในลักษณะที่เป็นอัตราส่วนต่อกัน ในกรณีที่อัตราส่วนมีค่ามากกว่าหนึ่ง แบบจำลองก็จะทำงานได้เร็วกว่าระบบจริง , ในกรณีที่อัตราส่วนมีค่าน้อยกว่าหนึ่ง ( อัตราส่วนจะไม่ต่ำกว่า 0 ) แบบจำลองจะทำงานได้ช้ากว่าระบบจริง และในกรณีที่อัตราส่วนเท่ากับหนึ่งระบบจะทำงานแบบ Real-time execution เช่น อัตราส่วนในการทำงานเท่ากับ 2 ดังนั้นเมื่อแบบจำลองทำงานไปเป็นเวลา 15 นาที เวลาที่ถูกเลื่อนไปในแบบจำลองก็จะเท่ากับ 2 x 15 หรือ 30 นาที เป็นต้น










 



Computer Simulation Taxonomy

       Computer Simulation Taxonomy เป็นการกล่าวถึงลักษณะการทำงานของ Computer Simulation ซึ่งสามารถที่จะแบ่งการทำงานออกมาเป็นลักษณะหรือวิธีการทำงานย่อยได้ดังรูป

        รูปที่ 2 แผนภาพ Computer Simulation Taxonomy [2]

        จากรูป วิธีการหรือลักษณะการทำงานของ Computer Simulation สามารถที่จะอธิบายได้ดังนี้คือ
1)     Continuous time simulation เป็นระบบที่จำลองโดยการให้ความสนใจการเปลี่ยนแปลงในแบบจำลองตลอดเวลาตั้งแต่เริ่มต้นทำงานจนสิ้นสุดการทำงาน ไม่ว่าระหว่างการทำงานของแบบจำลองจะมีการเปลี่ยนแปลงหรือไม่มีการเปลี่ยนแปลงใดๆเกิดขึ้นก็ตาม ซึ่งลักษณะของแบบจำลองที่ได้มักจะขึ้นกับสมการที่จะนำมาใช้ในการอธิบายแบบจำลอง แบบจำลองที่เหมาะสมกับการทำงานแบบนี้มักจะเป็นแบบจำลองที่ต้องการความต่อเนื่องในการทำงาน เช่น แบบจำลองของเครื่องบินที่ใช้แสดงการบินของเครื่องบิน
2)     Discrete time simulation เป็นระบบที่การจำลองโดยการให้ความสนใจการเปลี่ยนแปลงในลักษณะเป็นช่วงของเวลาที่ไม่ต่อเนื่อง คือไม่ต้องเก็บข้อมูลตลอดเวลาที่จำลองการทำงาน ซึ่งสามารถแบ่งเป็นรูปแบบย่อยๆได้ 2 รูปแบบ คือ



·     

Event stepped เป็นแบบจำลองที่จะสนใจต่อเหตุการณ์ที่มีการเปลี่ยนแปลงไป ดังนั้นการเลื่อนไปของเวลาที่ใช้ในแบบจำลองจะขึ้นอยู่กับการเกิดเหตุการณ์ต่างๆ หากมีเหตุการณ์ใดเหตุการณ์หนึ่งเกิดขึ้นจึงจะมีการเลื่อนไปของเวลา แบบจำลองที่มีความเหมาะสม เช่น แบบจำลองของสนามบินอย่างง่ายซึ่งจะสนใจการขึ้นและลงของเครื่องบิน นั้นคือจะมีการเปลี่ยนแปลงเมื่อเครื่องบันมีการบินขึ้นและบินลงในสนามบิน




·       Time stepped เป็นแบบจำลองที่จะเก็บข้อมูลเป็นช่วงๆของเวลา ดังนั้นเวลาที่จะใช้ในการทำงานจะมีการเลื่อนไปด้วยอัตราคงที่ ซึ่งจะขึ้นอยู่กับการกำหนดของแบบจำลอง เช่น แบบจำลองการเปลี่ยนแปลงระดับน้ำของทะเล ซึ่งจะเก็บการเปลี่ยนแปลงทุกๆครึ่งชั่วโมง

Parallel / Distributed Simulation
Parallel/Distributed Simulation คือ เทคโนโลยีที่ทำให้สามารถที่จะสร้างแบบจำลองเพื่อที่จะนำมาทำงานโดยใช้ระบบ Multiprocessors หรือการใช้หน่วยประมวลผลหลายตัวมาทำงานร่วมกันได้ ซึ่งการทำงานในรูปแบบนี้สามารถแบ่งได้เป็น 2 ลักษณะคือ
1)     Tightly Coupled Multiprocessors System เป็นระบบที่ทำงานแบบ Parallel Simulation ซึ่งจะมีการเชื่อมต่อกันของหน่วยประมวลผลอย่างใกล้ชิดกัน การทำงานในรูปแบบนี้สามารถที่จะแบ่งแยกเป็น 2 รูปแบบย่อยๆ ตามลักษณะการเชื่อมต่อกับหน่วยความจำได้ดังนี้คือ
·      Share Memory Multiprocessors เป็นระบบที่จะแบ่งส่วนของ memory มาเพื่อใช้งานร่วมกันโดยหน่วยประมวลผลหลายตัว ดังนั้นส่วนของ memory จึงเป็นทรัพยากรของส่วนกลางที่จะนำมาแบ่งใช้งานร่วมกัน ไม่ได้เป็นของหน่วยประมวลผลตัวใดตัวหนึ่งโดยเฉพาะ





·      Distributed Memory Muticomputers เป็นระบบที่จะแบ่งการทำงานไปให้หน่วยประมวลผลต่างๆช่วยกันทำงานโดยที่หน่วยประมวลผลแต่ละตัวจะมี memory เป็นของตัวเอง ไม่ได้แบ่งกันใช้งานร่วมกัน แต่ว่าหน่วยประมวลผลตัวอื่นๆก็ยังสามารถที่จะเข้ามาขอข้อมูลที่ถูกเก็บไว้ใน memory ได้โดยการขอข้อมูลผ่านหน่วยประมวลผลได้เช่นกัน



2)     Loosely Coupled Multiprocessors System เป็นระบบที่ทำงานแบบ Distributed Simulation ซึ่งจะมีการเชื่อมต่อของหน่วยประมวลผลที่สามารถตั้งอยู่ในที่ต่างๆกระจายกันได้ โดยจะเชื่อมต่อกันผ่านระบบ Network เช่น Internet เป็นต้น

การเปรียบเทียบลักษณะทางกายภาพของ Parallel กับ Distributed Simulation
ลักษณะทางกายภาพของระบบ Parallel และ Distributed Simulation มีความแตกต่างกันดังนี้ คือ
1)   Physical extent หรือพื้นที่ในการทำงาน
·      สำหรับ Parallel Simulation มีพื้นที่ในการทำงานเป็นแบบ Machine Room คือ สามารถทำงานได้เฉพาะในห้องที่ติดตั้งระบบ ซึ่งระบบทั้งหมดจะต้องติดตั้งในห้องเดียวกัน ดังนั้นจึงมีพื้นที่ในการทำงานที่แคบและจำกัด เนื่องจากความสามารถของระบบเชื่อมต่อที่ใช้งาน
·      สำหรับ Distributed Simulation มีพื้นที่ในการทำงานเป็นแบบ Global คือ สามารถทำงานได้ในบริเวณที่กว้างขวาง เนื่องจากเครื่องคอมพิวเตอร์ที่นำมาใช้งานสามารถแยกกระจายกันอยู่ได้ โดยใช้ระบบเชื่อมต่อที่รองรับการทำงานในระยะไกล ดังนั้นจึงสามารถทำงานได้แม้ว่าจะห่างไกลกันมากแค่ไหนก็ตาม
2)   Processors หรือหน่วยประมวลผลที่นำมาใช้งาน
·      สำหรับ Parallel Simulation มีหน่วยประมวลผลเป็นแบบ Homogenous คือ หน่วยประมวลผลที่นำมาใช้งานร่วมกันจะต้องเป็นหน่วยประมวลผลที่มีคุณสมบัติเหมือนกันทุกประการ นั้นคือต้องเป็นหน่วยประมวลรุ่นเดียวกันทั้งหมดในการทำงาน
·      สำหรับ Distributed Simulation มีหน่วยประมวลผลเป็นแบบ Heterogeneous คือ หน่วยประมวลผลที่นำมาใช้งานสามารถมีความแตกต่างกันได้ ไม่จำเป็นต้องเป็นรุ่นเดียว หรือผลิตจากบริษัทเดียวกัน
3)   Communication Network หรือตัวกลางในการเชื่อมต่อระบบ
·      สำหรับ Parallel Simulation ใช้ตัวกลางในการเชื่อมต่อแบบ Custom switch คือ Switch ที่ผลิตขึ้นมาเพื่อใช้งานโดยเฉพาะ สำหรับระบบคอมพิวเตอร์นั้นๆ
·      สำหรับ Distributed Simulation ใช้ตัวกลางในการเชื่อมต่อแบบ Commercial LAN/WAN คือ สามารถที่จะนำมาใช้งานได้โดยระบบเน็ตเวิร์คที่มีการใช้งานอยู่โดยทั่วไป
4)   Communication Latency หรือเวลาที่สูญเสียไปเพื่อใช้ในการติดต่อระหว่างกัน
·      สำหรับ Parallel Simulation ใช้เวลาในการติดต่อน้อยมากเนื่องการการเชื่อมต่อของหน่วยประมวลผลอยู่ในพื้นที่จำกัด ดังนั้นเวลาที่ใช้ในการติดต่อจะอยู่ในระดับไม่กี่มิลลิวินาทีจนถึงระดับสิบมิลลิวินาที
·      สำหรับ Distributed Simulation ใช้เวลาในการติดต่อนานซึ่งจะอยู่ในระดับตั้งแต่หลายร้อยมิลลิวินาทีจนถึงระดับวินาที เนื่องจากการติดต่อจะมีระยะทางที่ห่างไกลกัน ( สาเหตุที่ถือว่าใช้เวลานานเนื่องจากหน่วยประมวลผลมีความรวดเร็วในการทำงานสูงดังนั้นเวลาเพียงเล็กน้อยก็สามารถที่จะทำงานได้มาก )

ความจำเป็นที่จะต้องนำระบบ Distributed Simulation มาใช้งาน
        ความจำเป็นที่จะต้องนำระบบ Distributed Simulation มาใช้งานเนื่องจากเหตุผลต่างๆดังนี้ คือ
1)          ลดเวลาที่ใช้ในการคำนวณ ( Reduce model execution time ) เนื่องจากสามารถที่จะแบ่งย่อยงานไปให้หน่วยประมวลผลหลายๆตัวช่วยกันทำงาน ซึ่งจากการศึกษาพบว่าสามารถลดลงได้ถึง N เท่า สำหรับการใช้งานหน่วยประมวลผล N ตัว
2)          มีประสิทธิภาพที่ดีในเรื่องของขนาดของงาน ( Scalable Performance ) คือสามารถที่จะทำงานได้ด้วยความเร็วในระดับที่คงที่ถึงแม้ว่างานที่ทำจะมีขนาดที่ใหญ่ขึ้นเนื่องจากสามารถที่จะแบ่งย่อยงานไปให้หน่วยประมวลผลหลายๆตัวช่วยกันทำงานได้ ( เพิ่มจำนวนของหน่วยประมวลผลที่จะนำมาใช้งาน )
3)          สามารถที่จะใช้งานทรัพยากรต่างๆหรือทำงานร่วมกับผู้ใช้งานอื่นๆในสถานที่ที่ห่างไกลกันได้ในเวลาเดียวกัน เนื่องจากสามารถที่จะกระจายการทำงานไปยังสถานที่ต่างๆได้โดยไม่จำกัด ถ้าสถานที่นั้นเชื่อมต่อระบบเน็ตเวิร์คได้
4)          สามารถที่นำมาใช้งานบน Platform ของ OS ที่แตกต่างกันได้ ทำให้เกิดความสะดวกเนื่องจากไม่ต้องนำข้อมูลมาเปลี่ยนแปลงรูปแบบของ Platform ใหม่เพื่อให้สามารถทำงานร่วมกันได้
5)          มีระบบในการป้องกันความเสียหาย ( Fault Tolerance ) ซึ่งทำให้สามารถที่จะทำงานต่อได้ถึงแม้ว่าจะมีเครื่องใดเครื่องหนึ่งที่ทำงานร่วมกันเกิดความเสียหาย

ไม่มีความคิดเห็น:

แสดงความคิดเห็น

Grey Hat คืออะไร

Grey Hat คืออะไร Grey Hat คือ Hacker ที่มีทั้งด้สนดีและไม่ดีอยู่ภายในตัว อาจมีจุดประสงค์เพื่อโจมตีหรือป้องกันระบบโดยขึ้นอยู๋กับสถานการณ...