2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with...
Transcript of 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with...
การจาลองและการแสดงผลแบบขนานบนจพยของกระบวนการกรองอนภาคแมเหลกอยางออนขนาด
ไมโครเมตรดวยสนามแมเหลก
โดย นายปราชญ ชยศร
วทยานพนธนเปนสวนหนงของการศกษาตามหลกสตรปรญญาวทยาศาสตรมหาบณฑต สาขาวชาวทยาการคอมพวเตอรและสารสนเทศ
ภาควชาคอมพวเตอร บณฑตวทยาลย มหาวทยาลยศลปากร
ปการศกษา 2557 ลขสทธของบณฑตวทยาลย มหาวทยาลยศลปากร
การจาลองและการแสดงผลแบบขนานบนจพยของกระบวนการกรองอนภาคแมเหลก อยางออนขนาดไมโครเมตรดวยสนามแมเหลก
โดย นายปราชญ ชยศร
วทยานพนธนเปนสวนหนงของการศกษาตามหลกสตรปรญญาวทยาศาสตรมหาบณฑต สาขาวชาวทยาการคอมพวเตอรและสารสนเทศ
ภาควชาคอมพวเตอร บณฑตวทยาลย มหาวทยาลยศลปากร
ปการศกษา 2557 ลขสทธของบณฑตวทยาลย มหาวทยาลยศลปากร
PARALLEL SIMULATION AND VISUALIZATION OF MAGNETIC FILTRATION
OF WEAKLY MAGNETIC MICROPARTILCLES ON GPU
By
Mr. Prach Chaisiri
A Thesis Submitted in Partial Fulfillment of the Requirements for the Degree
Master of Science Program in Computer and Information Science
Department of Computing
Graduate School, Silpakorn University
Academic Year 2014
Copyright of Graduate School, Silpakorn University
บณฑตวทยาลย มหาวทยาลยศลปากร อนมตใหวทยานพนธเรอง “ การจาลองและการแสดงผลแบบขนานบนจพยของกระบวนการกรองอนภาคแมเหลกอยางออนขนาดไมโครเมตรดวยสนามแมเหลก ” เสนอโดย นายปราชญ ชยศร เปนสวนหนงของการศกษาตามหลกสตรปรญญาวทยาศาสตรมหาบณฑต สาขาวชาวทยาการคอมพวเตอรและสารสนเทศ
……........................................................... (รองศาสตราจารย ดร.ปานใจ ธารทศนวงศ)
คณบดบณฑตวทยาลย วนท..........เดอน.................... พ.ศ...........
อาจารยทปรกษาวทยานพนธ 1. รองศาสตราจารย ดร.จนทนา จนทราพรชย 2. อาจารย ดร.กนก หวลกาเนด คณะกรรมการตรวจสอบวทยานพนธ .................................................... ประธานกรรมการ (อาจารย ดร.ทศนวรรณ ศนยกลาง) ............/......................../.............. .................................................... กรรมการ .................................................... กรรมการ (ดร.ศรเทพ วรรณรตน ) (อาจารย ดร.ภญโญ แทประสาทสทธ) ............/......................../.............. ............/......................../.............. .................................................... กรรมการ .................................................... กรรมการ (รองศาสตราจารย ดร.จนทนา จนทราพรชย) (อาจารย ดร.กนก หวลกาเนด) ............/......................../.............. ............/......................../..............
ง
53314207 : สาขาวชาวทยาการคอมพวเตอรและสารสนเทศ
คาสาคญ : การกรองสนามแมเหลก/การจาลองแบบขนาน/คดา ปราชญ ชยศร : การจาลองและการแสดงผลแบบขนานบนจพยของกระบวนการกรองอนภาคแมเหลกอยางออนขนาดไมโครเมตรดวยสนามแมเหลก. อาจารยทปรกษาวทยานพนธ : รศ.ดร.จนทนา จนทราพรชย และ อ.ดร.กนก หวลกาเนด. 60 หนา. งานวจยนเปนการพฒนาระบบจาลองและแสดงภาพแบบขนานของกระบวนการแยกอนภาคแมเหลกอยางออนทมขนาดเลกกวาระดบไมโครเมตรมาก ๆ ในสนามแมเหลกเกรเดยนทสง แบบจาลองทางคณตศาสตรของกระบวนการแยกอนภาคถกจดตงบนพนฐานของกฎการอนรกษมวลโดยพจารณาผลกระทบจากแรงแมเหลกและการฟงทมตอกระบวนการขนสงอนภาค พลวตของกระบวนการขนสงอนภาคถกอธบายเชงสถตในรปแบบของความเขมขนอนภาคภายในโดเมนทสนใจ โดยการแกสมการการขนสงอนภาคดวยระเบยบวธผลตางสบเนองจะสามารถทานายรปแบบการกระจายคาความเขมขนอนภาคภายในโดเมนทเวลาตาง ๆ ได ในการพฒนาระบบจาลองและแสดงภาพแบบขนานบนหนวยประมวลผลกราฟกดวย CUDA โดยทาแปลงอลกอรทมใหทางานแบบขนานสาหรบสวนคานวณความเขมขนในโดเมนทกาหนด จากนนไดปรบปรงใหมการใช stream การใชหนวยความจารวม การเพมจานวนหนวยประมวลผลกราฟก เพอใหไดประสทธภาพทสงขน จากการทดสอบประสทธภาพพบวาอลกอรธมทปรบปรงน ทางานไดเรวขนสงสดทประมาณ 130 เทาเมอเปรยบเทยบกบการประมวลผลดวยหนวยประมวลผลกลางแบบลาดบ ดวยการใชจพยสองตว และพบวาการใชขนาดของบลอก (8,16)
ใหเวลาทดทสดสาหรบการทดสอบบนจพยรน GeForce GTX แบบจาลองมระบบแสดงภาพระหวางการทางานโดยใชการทางานรวมกนระหวาง CUDA และ OpenGL ภาควชาคอมพวเตอร บณฑตวทยาลย มหาวทยาลยศลปากร
ลายมอชอนกศกษา........................................ ปการศกษา 2557
ลายมอชออาจารยทปรกษาวทยานพนธ 1. ........................... 2. .............................
จ
53314207 : MAJOR : COMPUTER AND INFORMATION SCIENCE
KEY WORD : MAGNETIC SEPARATION/PARALLEL SIMULATION/CUDA
PRACH CHAISIRI : PARALLEL SIMULATION AND VISUALIZATION OF
MAGNETIC FILTRATION OF WEAKLY MAGNETIC MICROPARTILCLES ON GPU.
THESIS ADVISORS : ASSOC.PROF. CHANTANA CHANTRAPORNCHAI, Ph.D. , AND
KANOK HOURNKUMMUARD, Ph.D.. 60 pp.
This research is the development of parallel simulation and graphical representation
systems of separation process of weakly magnetic particles of sub-micron size in high gradient
magnetic field. The mathematical model of particle separation process is setup based on the law
of mass conservation by considering the effects of magnetic force and diffusion on particle
transport process. Dynamics of particle transport process is described statistically in term of
particle concentration within the considered domain. By solving particle transport equation by the
finite difference method, it is able to predict the pattern of particle concentration distribution
within the domain at various times.
The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for
computing the concentration is developed in the given domain. We use stream, shared-memory
and multi GPU for increasing performance. The peak performance obtained by using two GPUs is
approximately 130 times compared between the sequential versions on CPU. The best case is by
using block size (8,16) on GeForce GTX 760. The simulation can generate 2D graphics animation
of concentration changes with OpenGL.
Department of Computing Graduate School, Silpakorn University
Student's signature ........................................ Academic Year 2014
Thesis Advisors' signature 1. ........................... 2. ...........................
ฉ
กตตกรรมประกาศ
วทยานพนธนสาเรจลลวงไปไดดวยดเนองจากไดโอกาส ความร คาแนะนา คาปรกษารวมถงความอนเคราะหในเครองมอทใชในการทดลอง ผจดทาจงขอขอบพระคณ รองศาสตราจารย ดร.จนทนา จนทราพรชย และ อาจารย ดร.กนก หวลกาเนด ซงเปนอาจารยทปรกษา ผชวยศาสตราจารย ดร.ภชงค อทโยภาส สาหรบขอคดและคาแนะนาเพอเปนแนวทางในการวจยและการดาเนนชวต และพนทในการทาวจยภายในหองปฏบตการของ HPCNC ภาควชาวศวกรรมคอมพวเตอร มหาวทยาลยเกษตรศาสตร
ขอขอบพระคณ อาจารย ดร.ทศนวรรณ ศนยกลาง อาจารย ดร.ภญโญ แทประสาทสทธ และ ดร.ศรเทพ วรรณรตน ทสละเวลาอนมาคามาตรวจสอบรวมถงใหคาแนะนาในการจดทาวทยานพนธฉบบน
และสดทายนขอขอบพระคณครอบครว รวมถงทานผมพระคณทไมไดกลาวชอในทน ทชวยประสทธประสาทวชาความรของผจดทา
ช
สารบญ
หนา บทคดยอภาษาไทย ............................................................................................................................... ง บทคดยอภาษาองกฤษ .......................................................................................................................... จ กตตกรรมประกาศ ................................................................................................................................ ฉ สารบญตาราง ....................................................................................................................................... ฌ สารบญภาพ .......................................................................................................................................... ญ บทท 1 บทนา ......................................................................................................................................... 1 ความเปนมาและความสาคญของปญหา............................................................................ 1 วตถประสงคของงานวจย……………………………………………………………….... 2 ขอบเขตงานวจย ................................................................................................................ 2 ประโยชนทคาดวาจะไดรบ ............................................................................................... 3 2 เอกสารและงานวจยทเกยวของ .................................................................................................. 4
ทฤษฎการจบอนภาคแมเหลกอยางออนขนาดเลกกวาไมโครเมตรดวยสนามแมเหลก เกรเดยนตสงในของไหลสถต………………………………………………………. 4
การเกบขอมลความเขมขนภายใน ๆ สวนยอยของโดนเมน .............................................. 13 การกาหนดเงอนไขเรมตน ................................................................................................. 13 การกาหนดเงอนไขอมตว .................................................................................................. 14 การกาหนดเงอนไขขอบเขตการจาลอง ............................................................................. 14 ขนตอนการคานวณแบบ sequential .................................................................................. 14 การประมวลผลแบบขนาน ................................................................................................ 17 หนวยประมวลผลกราฟกและ CUDA (Computer Unfiled Device Architecture) ............. 19 OpenGL (Open Graphic Library) ..................................................................................... 24 งานวจยทเกยวของ ............................................................................................................. 25 3 วธดาเนนการวจย ....................................................................................................................... 27 อปกรณทใชในการทดลอง ................................................................................................ 27 ขนตอนการทดลอง ............................................................................................................ 28
ซ
บทท หนา
การสรางแบบจาลอง .......................................................................................................... 33 สรปผลการทดลองและจดทารายงานวทยานพนธ ............................................................. 35 4 ผลการทดลอง .............................................................................................................................. 36 การประเมนประสทธภาพ ................................................................................................. 38 การประมวลผลบนหนวยประมวลผลกลางแบบลาดบ ...................................................... 38 การวดประสทธภาพขนาดของบลอกทเหมาะสม .............................................................. 40 เปรยบเทยบประสทธภาพระหวางการใชหนวยความจารวมและไมใชหนวยความจารวม 48 เปรยบเทยบประสทธภาพระหวางการใชสตรมและไมใชสตรม ....................................... 50
เปรยบเทยบประสทธภาพระหวางการใชหนวยความจารวมกบสตรมและไมใชหนวยความ จารวมกบสตรม……………………………………………………………………. 51 เปรยบเทยบประสทธภาพการประมวลบนหนวยประมวลผลกราฟก…………………… 52 เปรยบเทยบประสทธภาพระหวางการใชหนวยประมวลผลกราฟกจานวนหนงและสอง หนวย………………………………………………………………...……………. 53
5 สรปผลการวจย .......................................................................................................................... 56 ขอเสนอแนะ ...................................................................................................................... 57 รายการอางอง ....................................................................................................................................... 58 ภาคผนวก ............................................................................................................................................. 60 ภาคผนวก ก .......................................................................................................................... 61 ประวตผวจย ......................................................................................................................................... 64
ฌ
สารบญตาราง
ตารางท หนา 4.1 เวลาของการประมวลบนหนวยประมวลผลกลางแบบลาดบ ............................................... 39 4.2 แสดงถงเวลาเฉลยใชจานวนเทรดตอบลอก (block size) ทแตกตางกนทงหมด 9 รปแบบ ประมวลผลบนหนวยประมวลผลกราฟกหนงหนวย ทาการทดลองทจานวนรอบแตกตาง กน……………………………………………………………………………………… 40
ญ
สารบญภาพ ภาพท หนา 2.1 การปอนสนามแมเหลกสมาเสมอ 0H ในทศทางตงฉากกบแกนของเสนใยตวจบและระบบ พกดเชงขว ,ar สาหรบการคานวณหาสนามแมเหลกเกรเดยนทสงในบรเวณรอบเสนใย ........................................................................................................................................ 5
2.2 การสรางโดเมนสาหรบจาลองการจบอนภาคแมเหลกอยางออนขนาดเลกกวาไมโครเมตร มาก ๆ ดวยสนามแมเหลกเกรเดยนทสงและระบบพกด ,ar ทใชในโดเมน………….. 7
2.3 การแบงโดเมนการคานวณออกเปนสวนยอยเลก ๆ จานวนมากโดยใช grid sizes ar และ ในระบบพกดเชงขว ,ar ................................................................................. 9 2.4 ลกษณะการขนตอกน (dependency) ระหวางขอมลความเขมขนในสวนยอยปกตภายใน โดเมน ............................................................................................................................. 12 2.5 ลกษณะการขนตอกน (dependency) ระหวางขอมลความเขมขนในสวนยอยพเศษและสวน ยอยธรรมดาทอยตดกน ................................................................................................... 13 2.6 การระบตาแหนงของสวนยอยพเศษในแถวหนง ๆ ของอะเรยความเขมขน (a) ในกรณทยง ไมเกดความเขมขนอมตว และ (b) ในกรณทเกดความเขมขนอมตวแลว ........................ 16 2.7 ลกษณะทศทางการคานวณความเขมขนคาใหมในแตละสวนยอยในแตละแถว .................. 16 2.8 ภาพเปรยบเทยบหนวยประมวลผลระหวางหนวยประมวลผลกลางและหนวยประมวลผล กราฟก............................................................................................................................. 19 2.9 การทางานรวมกนระหวาง host และ device ……………………………………………… 20 2.10 กรด บลอกและเทรดบนสถาปตยกรรม CUDA ................................................................... 21 2.11 หนวยความจาของ CUDA .................................................................................................... 23 2.12 เปรยบเทยบการทางานแบบ sequential และ stream............................................................. 24 2. รปทรงเรขาคณตพนฐานของ OpenGL ................................................................................ 25 2. การสรางเสนโคงจากจดและเสน…………………………………………………………. 25 3.1 ความเขมขนของอนภาครอบเสนใยตวจบในโดเมนทถกแบงเปนสวนยอยดวยพกดเชงขว.. 28 3.2 ความสมพนธเพอใชหาความเขมขนภายในสวนยอยโดเมนแบบ (a) ธรรมดาและ (b) พเศษ ........................................................................................................................................ 28 3.3 ขนตอนการทางานของโปรแกรมแบบลาดบ ....................................................................... 29 3.4 แสดงการทางานแบบไมใชหนวยความจารวม ..................................................................... 30
ฎ
ภาพท หนา
3.5 แสดงการทางานแบบใชหนวยความจารวม.......................................................................... 31 3.6 แสดงการแบงขอมลเพอทางานโดยใชสตรม ....................................................................... 32 3.7 การแลกเปลยนขอบของขอมลระหวางหนวยประมวลผลกราฟกสองใบ............................. 33 3.8 แผนผงการทางานรวมกนระหวาง CUDA และ OpenGL ในการสรางแบบจาลอง .............. 34 3.9 ความสมพนธระหวางความเขมขนและคาสในแตละสของโมเดล RGB .............................. 35 4.1 แบบจาลองคอมพวเตอรแบบขนานการจบอนภาคแมเหลกทมขนาดไมโครเมตรในสนาม แมเหลกเกรเดยนทสง ..................................................................................................... 36 4.2 แถบสแสดงตามความเขมขนของอนภาค ............................................................................. 37 4.3 เปรยบเทยบเวลาทใชในการทางานทตางกนของ block size ในจานวนรอบเทากนบนหนง หนวยประมวลผลกราฟก ................................................................................................ 41 . เปรยบเทยบ Occupancy, Global Memory Load Efficiency และ Global Memory Store Efficiency ใน block size ทตางกนบนหนงหนวยประมวลผลกราฟก ............................ 42 4.5 เปรยบเทยบเวลาทใชในการทางานทจานวน 1,000 รอบทขนาดของโดเมนและ block size ทตางกนบนหนงหนวยประมวลผลกราฟก ..................................................................... 43 4.6 เปรยบเทยบเวลาทใชในการทางานทตางกนของ block size ในจานวนรอบเทากนบนหนง หนวยประมวลผลกราฟกและมการใชหนวยความจารวม ............................................... 43 4.7 เปรยบเทยบเวลาทใชในการทางานทจานวน 1,000 รอบทขนาดของโดเมนและ block size ทตางกนบนหนงหนวยประมวลผลกราฟกแบบใชหนวยความจารวม............................ 44 4.8 เปรยบเทยบเวลาทใชในการทางานทตางกนของ block size ในจานวนรอบเทากนบนหนง หนวยประมวลผลแบบสตรม………………………………………….……………….. 44
4.9 เปรยบเทยบเวลาทใชในการทางานทจานวน 1,000 รอบทขนาดของโดเมนและ block size ทตางกนบนหนงหนวยประมวลผลกราฟกแบบสตรม………………………………... 45
4.10 เปรยบเทยบเวลาทใชในการทางานทตางกนของ block size ในจานวนรอบเทากนบนหนง หนวยประมวลผลกราฟกแบบสตรมและหนวยความจารวม…………………………... 45 4.11 เปรยบเทยบเวลาทใชในการทางานทจานวน 1,000 รอบทขนาดของโดเมนและ block size ท ตางกนบนหนงหนวยประมวลผลกราฟกแบบสตรมและหนวยความจารวม................... 46
ฏ
ภาพท หนา
4.12 เปรยบเทยบเวลาทใชในการทางานทตางกนของ block size ในจานวนรอบเทากนบนสอง หนวยประมวลผล……………………………………………………………………… 46 4.13 เปรยบเทยบเวลาทใชในการทางานทจานวน 1,000 รอบทขนาดของโดเมนและ block size ทตางกนบนสองหนวยประมวลผลกราฟก.................................................................... 47 4.14 เปรยบเทยบ speedup ของแตละวธทรอบการทางานเดยวกน……………………..……… 48 4.15 เปรยบเทยบการทางานระหวางการใชหนวยความจารวมและไมใชหนวยความจารวม…. 49 4.16 เปรยบเทยบเวลาแตละสวนบน device ระหวางแบบทใชหนวยความจารวมและไมใช…. 50 4.17 เปรยบเทยบประสทธภาพการทางานแบบมและไมมสตรม…………..………………….. 50 4.18 เปรยบเทยบประสทธภาพการทางานระหวางการใชสตรมรวมกบหนวยความจารวมและไม ใชหนวยความจารวมแตกตางกนทขนาดของบลอก………………………………… 51 4.19 เปรยบเทยบการทางานบนหนงหนวยประมวลผล……………………………………….. 52 4.20 เปรยบเทยบประสทธภาพการทางานระหวางใชหนงหนวยประมวลผลกราฟกและสอง หนวย…………………………………………………………………………………. 53
4.21 ประสทธภาพทเพมขนระหวางการใชงานหนงและสองหนวยประมวลผลกราฟก……... 54 4.22 อตราสวนเวลาระหวางการแลกเปลยนขอมลระหวาง CPU กบ GPU (memcpy), การแลก เปลยนขอมลกนระหวาการด (p2p) และเรยก kernel ทจานวนรอบการทางานท 1, 10, 100 และ 1,000 รอบ………………………………………………………….…………….. 55
ผ1 หนาตางสาหรบปรบพารามเตอรกอนทาการสรางแบบจาลอง…………………………… 63 ผ2 หนาตางแบบจาลอง……………………………………………………………..……….... 63
1
บทท 1
บทนา
แบบจาลองทางวทยาศาสตรเปนเครองมอทชวยใหนกวทยาศาสตรสามารถอธบายปรากฏการณหรอกระบวนการทไมไดทาการทดลองจรง และในกระบวนคานวณแบบจาลองทางวทยาศาสตรดวยคอมพวเตอรสวนใหญตองอาศยการประมวลผลจากหนวยประมวลผลทมประสทธภาพ เนองจากอาจจะตองใชเวลานานในการคานวณ ดงนนเทคโนโลยการประมวลผลแบบขนานจะชวยทาใหการคานวณผลจากแบบจาลองเรวขน การใชหนวยประมวลผลกราฟกกเปนวธหนงในการประมวลผลแบบขนาน
ความเปนมาและความสาคญของปญหา
เทคนคการใชสนามแมเหลกเกรเดยนทสงในการแยกหรอกรองอนภาคออกจากตวกลางของไหล (High Gradient Magnetic Separation : HGMS) ไดถกคดคนขนมาเพอเพมประสทธภาพการแยกอนภาคทมสมบตแมเหลกอยางออนและมขนาดเลกกวาระดบไมโครเมตรมาก ๆ ออกจากตวกลางของไหล เรมแรกเทคนคนถกคดคนขนมาเพอใชในอตสาหกรรมเหมองแร [1-4] ภายหลงไดมนกวจยและวศวกรนาเทคนคนไปประยกตใชกบงานสาขาตาง ๆ ไดแก การแยกประเภทเซลลเมดเลอดในตวอยางเลอดปรมาณนอย ๆ [5-6], การแยกอนภาคของเสยจากนาทงของโรงงานอตสาหกรรม [7] และในชวงไมกสบปทผานมาน เทคนค HGMS ไดถกนาไปประยกตใชในงานวจยทางดานเทคโนโลยชวภาพ เชนการคดแยกเมดเลอดแดงทตดเชอมาลาเรยออกจากตวอยางเลอด [8] ปรมาณทางกายภาพทสงผลกระทบสาคญกบการทางานของเทคนค HGMS ไดแก แรงแมเหลก การไหลของตวกลางของไหล ขนาดของอนภาค เปนตน แรงแมเหลกแปรผนตรงกบปรมาตรของอนภาคยงอนภาคมขนาดเลกปรมาตรยงนอยและแรงแมเหลกจะยงออน ดงนนถาอตราเรวการไหลของตวกลางของไหลไมนอยเพยงพอ โอกาสทอนภาคตวหนง ๆ จะถกแรงแมเหลกกระทาใหแยกออกมาจากของไหลจะนอยลงอยางมาก นอกจากนสาหรบอนภาคทมขนาดเลกกวาระดบไมโครเมตรมาก ๆ การเคลอนทของอนภาคจะมรปแบบของกระบวนการฟงปรากฏอย [9-11] กระบวนการฟงเปนกระบวนการแบบสมทเกดจากการชนกนระหวางอนภาคกบโมเลกลของตวกลางของไหลทาใหอนภาคกระเดนกระดอนไปมาและเสนทางการเคลอนทของอนภาคมลกษณะแบบสม ยงอนภาคมขนาดเลกกวาไมโครเมตรมาก ๆ ผลของกระบวนการฟงจะยงสาคญมากขน และการตดตามการเคลอนทชองอนภาคแตละตวจะทาไดยากเนองจากจานวนอนภาคใน
2
ระหวางกระบวนการ HGMS มมาก ดงนนวธการทเหมาะสมกวาคอวธการเชงสถต โดยศกษาพลวตความเขมขนของอนภาคในบรเวณทสนใจดวยการสรางแบบจาลองทางคณตศาสตรของกระบวนการขนสงอนภาคภายในโดเมนทสนใจ จากนนทาการจาลองพลวตของการขนสงอนภาคดวยการคานวณเชงตวเลขจากระเบยบวธตาง ๆ ไดแก ระเบยบวธผลตางสบเนอง ระเบยบวธไฟไนทเอลเมนท ระเบยบวธไฟไนทโวลยม ซงแตละระเบยบวธจาเปนตองแบงปรมาตรหรอพนทในบรเวณทสนใจออกเปนสวนเลก ๆ จานวนมากแลวกาหนดสมการทอธบายพลวตรความเขมขนอนภาคภายในสวนเลก ๆ นนบนพนฐานของกฎการอนรกษมวล จากนนใชระเบยบวธเชงตวเลขและโปรแกรมคอมพวเตอรแกสมการเพอใหทราบคาเชงตวเลขของความเขมขนอนภาค ณ ตาแหนงตาง ๆ ในบรเวณทสนใจ การแบงปรมาตรหรอพนทของบรเวณทสนใจออกเปนสวนเลก ๆ จานวนมากจะทาใหตองใชหนวยความจาและเวลาทใชในการคานวณมากไปดวย การพฒนาอลกอรทมการประมวลผลแบบขนานจะชวยเพมประสทธภาพในการประมวลผลใหไดผลการจาลองทมความถกตองภายในชวงเวลาไมนานได
การประมวลผลดวยหนวยประมวลผลกราฟกเปนทางเลอกหนงสาหรบการประมวลผลแบบขนาน หนวยประมวลผลกราฟกในปจจบนมหลากหลาย และราคาไมแพง ในงานวจยนอาศยหนวยประมวลผลกราฟกของ NVIDIA และอาศย CUDA เปนแพลตฟอรมในการทางานเพอใชในการโปรแกรมแบบขนาน [12]
วตถประสงคของงานวจย
เพอศกษาและพฒนาการสรางแบบจาลองทางคอมพวเตอรของกระบวนการใชสนามแมเหลกเกรเดยนทสงจบอนภาคแมเหลกอยางออนทมขนาดเลกวาระดบไมโครเมตร โดยใชการประมวลผลแบบขนานบน CUDA
ขอบเขตงานวจย
พฒนาแบบจาลองการคานวณแบบขนานโดยเขยนโปรแกรมและใชแพลตฟอรม CUDA ใชรปแบบการประมวลผลทแตกตางกน 5 รปแบบ ไดแก การประมวลผลแบบขนานบนหนงหนวยประมวลผลกราฟก, การประมวลผลแบบขนานบนหนงหนวยประมวลผลผลกราฟกโดยใชหนวยความจารวม การประมวลผลแบบขนานบนหนงหนวยประมวลผลผลกราฟกโดยใช
3
สตรม การประมวลผลแบบขนานบนหนงหนวยประมวลผลผลกราฟกโดยใชหนวยความจารวมและสตรม และการประมวลผลแบบขนานบนสองหนวยประมวลผลผลกราฟก โดยในแตละรปแบบหลกม รปแบบยอย แตกตางกนโดยจานวนเทรดตอบลอกทตางกนดงน (8,8), (8,16), (8,32), (16,8), (16,16), (16,32), (32,8), (32,16) และ (32,32)
ทดสอบความถกตองของการคานวณโดยการเปรยบเทยบกบผลการจาลองทไดจากการทดลองจบอนภาคดวยสนามแมเหลกเกรเดยนทสงทไดมผศกษามากอนแลว
วดและเปรยบเทยบประสทธภาพของทง 5 รปแบบการคานวณหลกและ รปแบบยอย เพอหารปแบบทเหมาะสมสาหรบนาไปสรางระบบแสดงผล
พฒนาโมดลแสดงผลเชอมตอการคานวณ แสดงผลในรปภาพกราฟกเคลอนไหว มต
ประโยชนทคาดวาจะไดรบ
ไดแบบจาลองคอมพวเตอรแบบขนานของกระบวนการจบอนภาคแมเหลกอยางออนทมขนาดเลกกวาไมโครเมตรดวยสนามแมเหลกเกรเดยนทสง รวมทงระบบแสดงผลการจาลอง
ไดความรในการพฒนาโปรแกรมแบบ CUDA
4
บทท
เอกสารและงานวจยทเกยวของ
ในบทน จะอธบายทฤษฎของกระบวนการจบอนภาคแมเหลกอยางออนขนาดเลกกวาไมโครเมตรดวยสนามแมเหลกเกรเดยนทสงในของไหลสถตทไมมการเคลอนท สถาปตยกรรมของหนวยประมวลผลกราฟกและแพลตฟอรม CUDA และการทบทวนวรรณกรรมของงานวจยทเกยวของ
ทฤษฎการจบอนภาคแมเหลกอยางออนขนาดเลกกวาไมโครเมตรดวยสนามแมเหลก เกรเดยนทสงในของไหลสถต เนองจากกระบวนการฟงมอทธพลสาคญตอพลวตรของความเขมขนอนภาคทมขนาดเลกกวาระดบไมโครเมตร ในการแบบจาลองกระบวนการ จะใชทฤษฎทางฟสกสสถตมาอธบายพลวตรของความเขมขนอนภาค โดยใชสมการความตอเนองของคาความเขมขนซงมพนฐานอยบนกฎการอนรกษมวล [11] และมรปแบบดงน
2
mC D C CuFt
2C C (2.1)
โดย D คอคาสมประสทธการฟงของอนภาคในของไหล คอคาความสามารถการเคลอน (mobility)
ของอนภาคในของไหล Bk คอคาคงทของ Boltzmann และ T คออณหภมสมบรณในหนวยเคลวน ในการจาลองจะแบงปรมาตรหรอพนททสนใจออกเปนสวนยอยขนาดเลก ๆ จานวนมาก จากนนกาหนดสมการความตอเนองนใหกบทก ๆ สวนยอยเลก ๆ ทาการกาหนดคาความเขมขนเรมตนและเงอนไขคาความเขมขนบนขอบเขตตาง ๆ ของปรมาตรหรอพนททสนใจ ในวทยานพนธนจะใชระเบยบวธผลตางสบเนองหาผลเฉลยเชงตวเลขของสมการความตอเนองทกาหนดใหกบแตละสวนยอยเลก ๆ ซงผลทไดเปนคาเชงตวเลขของความเขมขนอนภาคในแตละสวนยอยเลก ๆ ทเวลาตาง ๆ ได ทาใหเหนถงพลวตรของการขนสงอนภาคในปรมาตรหรอพนททสนใจ
5
การสรางสนามแมเหลกเกรเดยนทสงเพอใชในการจบอนภาคแสดงไดในภาพท .1 ในภาพทาการปอนสนามแมเหลกภายนอกทมความเขมสมาเสมอ 0H ในทศทางทตงฉากกบแกนของเสนใยตวจบ เสนใยตวจบเปนสวนประกอบสาคญของระบบการจบอนภาค เปนเสนใยของวสดแมเหลกเฟอรโรททนตอการกดกรอนทางเคม เชน stainless steel มขนาดเสนผานศนยกลาง –
ไมโครเมตร เมอเสนใยนวางขวางสนามแมเหลกสมาเสมอจะเหนยวนาใหเกดสนามแมเหลกเกรเดยนทสงภายในบรเวณใกล ๆ กบผวของเสนใย
ภาพท 2.1 การปอนสนามแมเหลกสมาเสมอ 0H ในทศทางตงฉากกบแกนของเสนใยตวจบ และระบบพกดเชงขว ,ar สาหรบการคานวณหาสนามแมเหลกเกรเดยนทสงในบรเวณรอบเสนใย
ในภาพท 2.1 ไดนยาม ระบบพกดเชงขว ,ar เพอวดระยะ ในแนวรศมในหนวยเปนจานวนเทาของรศม a ของเสนใย ทวดในทศทวนเขมนาฬกาจากทศของสนามแมเหลกสมาเสมอ สามารถแสดงคาสนามแมเหลกเกรเดยนทสงทขนกบตาแหนงตาง ๆ รอบเสนใยไดดงสมการ
0 2 2, 1 cos 1 sinW Wa
a a
K KH r H rr r
WKWWW11 WWWW111 ( . )
6
โดยท คา WK เปนคาทขนกบคาสภาพแมเหลกอมตว ( ) ของสารแมเหลกเฟอรโรภายในเสนใยและความเขมของสนามแมเหลก 0H ดงสมการ
02
WsW
MKH
(2. )
สาหรบอนภาคแมเหลกอยางออนทมขนาดเลกกวาไมโครเมตร แรงแมเหลกทกระทากบอนภาคเมอมนอยในสนามแมเหลกเกรเดยนทสงจะมคาตามสมการ
3
0 03 5 3
4 ( ) cos 2 sin 23
p f Ws p Wma a a
M H b KF ra r r r
44 sin 2sin 2sin 2sin 2sin 2rr (2.4)
โดยท p และ f เปนคาความไหวตวทางแมเหลกของอนภาคแมเหลกอยางออนและของไหลตามลาดบสวน pb และ a คอรศมของอนภาคและเสนใยตวจบตามลาดบ ในการจาลองกระบวนการจบอนภาคแมเหลกอยางออนดวยสนามแมเหลกเกรเดยนทสงจะพจารณารปแบบของสมการแรงแมเหลกในสมการ ( . ) ซงเหนไดชดเจนวาแรงแมเหลกไมขนกบตาแหนงตามความยาวของเสนใย ดงนนปญหาการขนสงอนภาคจะมความซบซอนนอยลงจาก มตเหลอ มต จงทาการสรางโดเมนของการจาลองเปนรปวงกลมลอมรอบเสนใย เสน โดเมนนมจดศนยกลางอยบนแกนของเสนใยและมรศมขนาด เทาของรศมเสนใย กาหนดระบบพกด
,ar สาหรบใชในโดเมน ดงนนโดนเมนจงมรศมภายใน 1ar (เทากบรศมของ เสนใย) และ รศมภายนอก aLr = ดงแสดงในภาพท 2.2
7
ภาพท 2.2 การสรางโดเมนสาหรบจาลองการจบอนภาคแมเหลกอยางออนขนาดเลกกวาไมโครเมตรมาก ๆ ดวยสนามแมเหลกเกรเดยนทสงและระบบพกด ,ar ทใชในโดเมน เมอเขยนกระจายสมการความตอเนอง ( . ) ในระบบพกด ,ar จะไดรปแบบดงน
2 2
2 2 21 1 1r
ra a a a aa a
C C C C G C G C G Cr r r r rr r
( . )
โดยท 2Dta
(2.6)
mrr
B
aFGk T
( . )
และ
m
B
aFGk T
( . )
8
โดย mrF และ mF คอองคประกอบของแรงแมเหลกในระบบพกด เชงขว ,ar ตามสมการ ( . )
สมการ ( . ) นจะถกใชจาลองพลวตรของคาความเขมขนอนภาคในแตละสวนยอยเลก ๆ ของโดเมนทไมไดอยตดกบ impervious surfaces ซงในทนนยามวาเปนพนผวทอนภาคไมสามารถเคลอนผานไปได เชน พนผวของเสนใยหรอพนผวของบรเวณทมอนภาคสะสมอยหนาแนนมากจนความเขมขนสงถงระดบอมตว ในการจาลองจะจดสวนยอยเลก ๆ ในโดเมนออกเปน ประเภท ประเภทแรกคอ “สวนยอยปกต” ทไมไดอยตดกบ impervious surfaces ใด ๆ ซงสมการทอธบายพลวตรความเขมขนอนภาคคอ สมการ ( . ) อกประเภทหนงคอ “สวนยอยพเศษ” ทอยตดกบ impervious surface ซงรปแบบของสมการความตอเนองของคาความเขมขนอนภาคภายในสวนยอยพเศษจะมรปแบบทตางออกไป [11] ดงน
2
2 21 1 1
ra a a a
C C CG C G Cr r r r
( . )
โดยท ar เปนระยะในแนวรศมจาก สวนยอยพเศษถง impervious surface วดเปนจานวนเทาของรศมเสนใยตวจบ
ในการจาลอง สมการ ( . ) และ ( . ) จะถกหาผลเฉลยเชงตวเลขดวยระเบยบวธผลตางสบเนองแบบชดแจง โดเมนวงกลมในรปท . จะถกแบงออกเปนสวนยอยเลก ๆ จานวนมากโดยใช grid sizes ar และ ดงแสดงในภาพท .
9
ภาพท 2.3 การแบงโดเมนการคานวณออกเปนสวนยอยเลก ๆ จานวนมากโดยใช grid sizes ar
และ ในระบบพกดเชงขว ,ar
ในภาพท 3 จะเหนวาแตละสวนยอยเลก ๆ จะถก labeled ดวยดชน ตวทเปนจานวนเตม i และ j สาหรบระบพกด , ,a i jr ณ ตาแหนงกงกลางของสวนยอยโดยท
, 1 0.5a i ar i r , max0 i i , (2.10)
และ 0.5j j , max0 j j , (2.11)
ซง maxi และ maxj เปนคาสงสดของ ดชน i และ j ทหมายถงระยะไกลสดในแนวรศมและมมคาสงสดของมมรอบจดศนยกลางวงกลม ถาเรากาหนดขนาดแนนอนของโดเมนแลวคาของ maxi และ maxj จะขนกบ grid sizes ar และ ดงสมการ
wire
10
max1 1aL
a
rir
( . )
โดย aLr คอรศมภายนอกของโดเมน
และ max360j ( . )
เพอความสะดวกในการสรางอลกอรทมสาหรบทาการจาลอง จะเขยนกระจายเทอมอนพนธยอยในสมการ ( . ) ในรปแบบดงน
2 2
2 2 21 1 r r
ra a a a a a aa a
G GC C C C G C C G C CG Cr r r r r r rr r
( . )
ทาการประมาณเทอมอนพนธยอยตาง ๆ ในสมการ ( . ) ดวยผลตางสบเนองทสมนยกน สวนคาฟงกชน rG , G , /r aG r และ /G สามารถหาคาแทจรง ณ ตาแหนงตาง ๆ จะไดสมการผลตางสบเนองทสมนยกบสมการอนพนธยอย ( . ) มรปแบบดงน
1
, , 1, , 1, 1, 1, , 1 , , 12 2 2
, ,
2 21 12
n n n n n n n n n ni j i j i j i j i j i j i j i j i j i j
aa ia a i
C C C C C C C C C Crrr r
,, 1, 1,,,
, ,2
n n nr i ji j i j i j nr
r i ji ja aa i i j
G C C C GG Cr rr
, , 1 , 1 ,
,, ,2
n n ni j i j i j i j
i ja i a i
G C C C Gr r
(2.15)
โดย superscript n และ 1n เปนดชนแสดงลาดบของเวลา normalized n และ 1n วาเปนเวลา normalized ทสมนยกบเวลาปจจบน n และเวลาถดไป 1n ตามลาดบ ดงนนสญลกษณ ,
ni jC
หมายถงคาความเขมขน ณ ตาแหนง , ,a i jr ซงอยตรงกงกลาง สวนยอยหนง ณ เวลา normalized
n และ 1,ni jC หมายถงคาความเขมขน ณ ตาแหนงนน ณ เวลา normalized 1n n คา
11
ของฟงกชน rG , G , /r aG r และ /G ทปรากฏอยในสมการ ( . ) เปนคาทตาแหนง , ,a i jr ซงมรปแบบดงตอไปน
,,
mr i jr i j
B
a FG
k T, (2.16)
,,
m i ji j
B
a FG
k T, (2.17)
, ,
mrr
a B ai j i j
FG ar k T r
, (2.18)
และ , ,
m
Bi j i j
G Fak T
, (2.19)
ซงเมอทาการจดรปสมการ ( . ) จะสามารถคานวณคาความเขมขน ณ ตาแหนง , ,a i jr
ภายในสวนยอยปกตทเวลา normalized คา ใหมไดจากคาความเขมขนตรงนนทเวลา normalized เกา และคาความเขมขนทเวลา normalized เกาของ element ทลอมรอบได จากสมการตอไปน
,1, ,2 2 2
,, ,,,
2 2 11 r i jn nri j i j
i jaa i a ii ja a i
G GGC Crr rr r
,1,2
,
122r i j n
i jaa ia
GC
rrr
,1,2
,
122r i j n
i jaa ia
GC
rrr
,, 12 2
,,
12
i j ni j
a ia i
GC
rr
,, 12 2
,,
12
i j ni j
a ia i
GC
rr . (2.20)
12
ทงนสงเกตในสมการ ( . ) วา การคานวณคาความเขมขน 1,ni jC ทเวลา normalized ใหม
จาเปนตองทราบคาความเขมขนทเวลา normalized เกา คาภายในสวนยอยทอยรอบ ๆ ดงลกษณะทแสดงไวในภาพท 2.4
ภาพท 2.4 ลกษณะการขนตอกน (dependency) ระหวางขอมลความเขมขนในสวนยอยปกตภายในโดเมน
ตอไปพจารณาสมการ ( . ) สาหรบสวนยอยพเศษทอยตดกบ impervious surface ทาการประมาณเทอมอนพนธยอยตาง ๆ ดวยผลตางสบเนองทสมนยกน และจดรปสมการ จะไดสมการผลตางสบเนองสาหรบคานวณคาความเขมขน ณ ตาแหนง , ,a s jr ตรงกงลางสวนยอยพเศษทเวลา normalized ใหมได ดงน
1, ,2 2
,,,
21n n
s j s js ja sa s
GC Crr
,, 12 2
,,2
s j ns j
a sa s
GC
rr
,, 12 2
,,2
s j ns j
a sa s
GC
rr
1,1, 2,2 2
r s j n ns j s j
aa a
GC C
rr r. (2.21)
13
โดย subscript S ของตวแปร ar เปนตวระบสวนยอย พเศษ และ subscript 1S และ 2S ระบสวนยอยปกตทอยถดจากสวนยอยพเศษในแนวรศมไป และ สวนยอย ภาพท 2.5 แสดงลกษณะความสมพนธ (dependency) ระหวางขอมลความเขมขนในสวนยอยพเศษและ สวนยอยปกตทอยตดกน
ภาพท 2.5 ลกษณะการขนตอกน (dependency) ระหวางขอมลความเขมขนในสวนยอยพเศษและสวนยอยปกตทอยตดกน
จากสมการ ( . ) และ ( . ) จะเหนวาถาไดมการกาหนดคาเรมตนของความเขมขนใหกบทก ๆ สวนยอยภายในโดเมนในภาพท . แลวจะสามารถคานวณหาคาความเขมขนในทก ๆ สวนยอยทเวลาตอ ๆ ไปได ดงนนจะสามารถจาลองลกษณะการกระจายคาความเขมขนในโดเมนทเวลาตาง ๆ ได
การเกบขอมลความเขมขนภายในทก ๆ สวนยอยของโดเมน ในการจาลองจะใชอะเรย 2 มต ทมขนาดเทากน ตว ชอ old_C และ new_C โดย อะเรย
แตละตวมจานวน column เทากบ + 1 และจานวนแถวเทากบ + 1 ซงคานวณไดจากสมการ ( . ) และ ( . ) ตามลาดบ สาหรบเกบคาความเขมขนในทก ๆ สวนยอยของโดเมนโดยชองของอะเรยทมดชนของ column และ แถวเปน i และ j จะเกบคาความเขมขน ,i jC ใน สวนยอยทมตาแหนงกงกลางเปนพกด , ,a i jr
การกาหนดเงอนไขเรมตน กอนเรมการจาลองจะทาการกาหนดคาความเขมขน ทเวลาเรมตน 0
,i jC 0 ใหกบทก ๆ สมาชกในอะเรยความเขมขนทง old_C และ new_C คาความเขมขนทเวลาเรมตนอาจมคาเปน
14
คาคงทหรออาจเปนฟงกชนทมคาขนกบตาแหนงในโดเมนทสนใจซงในทางคณตศาสตรสามารถเขยนไดดงตอไปน
0, 0 ,i j aC C r สาหรบทก ๆ i และ j , (2.22)
โดย 0 ,aC r อาจเปนคาคงทหรอเปนฟงกชนของตาแหนง ( )
การกาหนดเงอนไขอมตว ในความเปนจรงแลวเมออนภาคมการสะสมตวหนาแนนในบรเวณหนงความเขมขนจะสงขน แตจะมคาจากดทไมเกนคา ๆ หนงเรยกวา ความเขมขนอมตว (saturate concentration) ในงานนจะประมาณระดบขนาดของความเขมขนอมตวโดยอางองขอมลจากการทดลอง [9] ซงพบวาสาหรบอนภาคแมเหลกอยางออน คาความเขมขนอมตวจะมคาอยในระดบขนาด - ในระหวางการจาลองจะมการตรวจสอบทกรอบการคานวณความเขมขนคาใหมในแตละสวนยอยวามคาความเขมขนในสวนยอยใดสงถงระดบคาอมตวหรอยง หากถงระดบดงกลาวแลวจะคงคาความเขมขนในสวนยอยนนใหคงทเทากบคาอมตวตลอดเวลาคอตดออกไปจากกระบวนการคานวณและพจารณาใหสวนยอยนนเปนสวนหนงของ impervious surface ในทางคณตศาสตรการกาหนดเงอนไขอมตวสามารถแสดงไดดงน
,0 n
i j satC C สาหรบทก ๆ i , j และ n . (2.23)
โดย satC คอความเขมขนอมตว
การกาหนดเงอนไขขอบเขตของการจาลอง ในการจาลองการกระจายคาความเขมขนของอนภาคในโดเมนทอยในรปท . จะตองมการกาหนดเงอนไขขอบเขตภายนอกท a aLr r โดยจะกาหนดใหความเขมขนอนภาคในสวนยอยเหลานเทากบความเขมขนเรมตน สามารถเขยนเปนสมการไดวา
max , 0ni jC C , สาหรบทก ๆ (2.24)
ขนตอนการคานวณแบบ Sequential 1. กาหนดพารามเตอรชองการจาลอง
15
พารามเตอรทสาคญของการจาลองไดแก ความเขมของสนามแมเหลกสมาเสมอ 0H , รศมอนภาค bp, รศมเสนใย a, คาสภาพแมเหลกอมตว MWs ของเสนใยตวจบ, คาความไหวตวทางแมเหลก p ของอนภาคและ f ของของไหลตามลาดบ, คา grid steps ar และ และคา step
ของเวลา normalized 2. ประกาศอะเรยเกบคาความเขมขน คาองคประกอบแรงแมเหลกในแนวรศม mrF และแนวมม mF และตวแปรตาง ๆ ทจาเปนตอการคานวณ
3. คานวณหา rG , G , /r aG r และ /G
4. กาหนดคาความเขมขนเรมตนใหกบทก ๆ สมาขก ในอะเรยความเขมขน old_C และ new_C
5. เรมวงรอบการจาลองทาการคานวณคาความเขมขนทเวลาใหมในทก ๆ สมาชก ของ อะเรยคาความเขมขน โดยใชสมการ ( . ) และ ( . ) ตามชนดของสวนยอยรวมกบเงอนไขความเขมขนอมตวในสมการ ( . ) โดยใชจานวนรอบเปนตวกาหนดเงอนไขการวนรอบ ตามขนตอนดงตอไปน
5.1นบจานวนรอบเพมขนทละ และหาตาแหนงของสวนยอยพเศษทงหมดทมอยในโดเมน ในแตละแถวทมดชน j ของอะเรยคาความเขมขน ทาการตรวจสอบคาความเขมขนในทก ๆ column ตงแตดชน 0i ถง maxi i ถาหากคาความเขมขนในทก ๆ ชองตากวาคาอมตว แสดงวา impervious surface ในกรณนคอผวของเสนใยและกาหนดให สวนยอย พเศษคอ สวนยอยทมดชนของ column เปน 0i หรอ 0S ดงแสดงในภาพท . (a) แตถาม สมาชกชองใดในอะเรยทมคาความเขมขนถงระดบอมตวแลว จะกาหนดใหสวนยอยในโดเมนทสมนยกบสมาชกอะเรยเหลานนเปนสวนหนงของ impervious surface และใหสวนยอย แรกทอยตดกบสวนยอยอมตวสดทายเปนสวนยอยพเศษดงแสดงในภาพท 2.6 (b)
16
(a)
(b)
ภาพท 2.6 การระบตาแหนงของสวนยอยพเศษในแถวหนง ๆ ของอะเรยความเขมขน (a) ในกรณทยงไมเกดความเขมขนอมตว และ (b) ในกรณทเกดความเขมขนอมตวแลว
5.2 คานวณคาความเขมขนทเวลาใหมในทก ๆ สวนยอยในแตละแถว
สาหรบแถว j หนง ๆ คานวณคาความเขมขนทเวลา normalized ใหมในทก ๆ ชองของอะเรยความเขมขน new_C ทตามทศทางในภาพท 2.7
ทศทางการคานวณความเขมขนคาใหมในสวนยอยของแตละแถว
ภาพท 2.7 ลกษณะทศทางการคานวณความเขมขนคาใหมในแตละสวนยอยในแตละแถว
Impervious
surface
ขนท
5.2.1 ขนท . .
ขนท . .
17
5.2.1 กาหนดเงอนไขขอบเขตใหกบชองทมดชน maxi i ดงสมการ
max
1, 1
up
ni jC ( . )
5.2.2 คานวณคาความเขมขนคาใหมในทก ๆ ชองทมดชน max1 1S i i
โดยใชสมการผลตางสบเนอง ( . ) . . คานวณคาความเขมขนคาใหมใน ชองทมดชน i S โดยใชสมการผลตาง
สบเนอง ( . )
5.4 ทาการคดลอกคาความเขมขนคาใหมในทก ๆ ชองของ อะเรย new_C ใหกบทก ๆ ชองของ อะเรย old_C ทมดชน i และ j ตรงกน เพอเตรยม อะเรย ขอมลความเขมขนสาหรบการคานวณในรอบถดไป
5.5 ทาซากระบวนการในขอ . ถง . จนกระทงจานวนรอบการจาลองครบตามทกาหนด
6. เกบคาพกด , ,a i jr และคาความเขมขนในทก ๆ ชองของ อะเรย new_C ลงใน output
files
โดยการทาตามกระบวนการจาลองทอธบายมาน ทาใหสามารถหาลกษณะการกระจายคาความเขมขนของอนภาคในโดเมน ณ เวลาตาง ๆ ไดซงจะทาใหสามารถประเมนประสทธผลในการใชสนามแมเหลกเกรเดยนทสงจบอนภาคแมเหลกอยางออนขนาดเลกกวาไมโครเมตรทเจอปนอยในตวกลางของไหลได
การประมวลผลแบบขนาน
เปนการประมวลผลโดนทางานหลาย ๆ อยางพรอมกน โดยอาจจะเครองคอมพวเตอรตงแต เครองขนไป หรอเครองคอมพวเตอรทมจานวนตงแต แกนขนไป โดยการแบงกระบวนการคานวณและกระจายงานคานวณไปยงแตละเครองหรอแตละหนวย การประมวลผลแบบขนานถกนามาใชในงานดานตาง ๆ เชน งานดานการพยากรณอากาศ การวเคราะหหารไหลของของเหลว เปนตน ถงแมในงานดงกลาวจะสามารถใชคอมพวเตอรตงโตะไดแตอาจจะใชเวลานานมากเกน จง
18
มการนาเครองคอมพวเตอรขนาดใหญ เชน ซปเปอรคอมพวเตอร (Supercomputer) ทมหลายโพรเซสเซอรมาชวยประมวลผลแบบขนานเพอทางานไดเรวขน รปแบบของซปเปอรคอมพวเตอรอาจจะได แก Vector processing, Multiprocessing และ Distributed processing
การประมวลผลแบบ Vector processing จะอาศยหนวยประมวลผลแบบเวกเตอรทออกแบบมาเพอประมวลผลขอมลขนาดใหญโดยเฉพาะ โดยหนวยประมวลผลแบบเวกเตอรสามารถทจะโหลดขอมลขนาดใหญเพยงครงเดยวเขาสเวกเตอรและมชดคาสงในการจดการกบขอมลในเวกเตอรพรอม ๆ กนโดยอาศยเทคนคแบบไปปไลนของตวดาเนนการทาง
Multiprocessing เปนการประมวลผลทใชหนวยประมวลผลภายในเครองหลาย ๆ หนวยพรอมกน และใชหนวยความจารวมกน
Distributed processing เปนการประมวลผลแบบกระจายโดยอาศยการนาเครองคอมพวเตอรหลายๆ เครองเขามาตอเขาดวยกนผานเครอขายโดยกระจายงานไปแตละเครองใหทางานกบขอมลในแตละเครองนน
ในการแบงประเภทของสถาปตยกรรมแบบขนาน นยมกลาวถง Flynn’s taxonomy ซงสามารถจาแนกได ประเภทตามชนดของขอมลและชดคาสง ดงน
หนงสายคาสงหนงสายขอมล (Single Instruction stream, Single Data stream : SISD) คอสถาปตยกรรมทมชดคาสงหนงชดกระทากบขอมลชดเดยวโดยทางานแบบลาดบ (Sequential)
หนงสายคาสงหลายสายขอมล (Single Instruction stream, Multi Data stream : SIMD) คอสถาปตยกรรมทมหนวยประมวลมากกวาหนงตวกระทาชดคาสงเดยวกนกบขอมลคนละชด โดยในแตละหนวยประมวลผลจะมหนวยความจาเฉพาะเปนของตวเอง
หลายสายคาสงหนงสายขอมล (Multi Instruction stream, Single Data stream : MISD) คอสถาปตยกรรมทมขอมลชดเดยว ถกประมวลผลดวยชดคาสงจากหลายหนวยประมวลผล
หลายสายคาสงหลายสายขอมล (Multi Instruction stream, Multi Data stream : MIMD) คอสถาปตยกรรมทมหลายหนวยประมวลผลโดยแตละหนวยประมวลผลทางานในชดคาสงและขอมลของตวเอง
19
หนวยประมวลผลกราฟกและ CUDA (Computer Unified Device Architecture)
เนองจากในปจจบนหนวยประมวลผลกราฟกมจานวนแกนในการประมวลผลทมากเมอเทยบกบหนวยประมวลผลกลาง ดงภาพท 2.8 จงมการนาหนวยประมวลผลกราฟกทเคยใชเพอประมวลผลภาพกราฟกเพยงอยางเดยวนามาประมวลผลในงานดานอน ๆ สาหรบหนวยประมวลผลกราฟกของบรษท NVIDIA นนทาง NVIDIA ไดออกแพลตฟอรมการคานวณแบบขนานและรปแบบการเขยนโปรแกรมแบบขนานทพฒนา โดยเพมประสทธภาพการทางาน โดยอาศยสถาปตยกรรมของหนวยประมวลผล CUDA มรปแบบการทางานเปนแบบ SIMD ทางานรวมกบการทางานของหนวยประมวลผลในหนวยประมวลผลกลาง ภายใน CUDA toolkit จะประกอบดวยตวแปลภาษาทใชในการแยกสวนของการประมวลผลวาสวนใดจะทางานบนหนวยประมวลผลกลางหรอหนวยประมวลผลกราฟก มไลบราลทางคณตศาสตรสาหรบประมวลผลบนหนวยประมวลผลกราฟก เครองมอสาหรบการดบก และเครองมอสาหรบวดประสทธภาพการทางานของโปรแกรม ภาษาทใชในการพฒนาอยบนพนฐานของภาษาซ
ภาพท 2.8 ภาพเปรยบเทยบหนวยประมวลผลระหวางหนวยประมวลผลกลางและหนวยประมวลผลกราฟก
ทมา Nvidia, CUDA C Programming Guide, Accessed May 2, 2015, Available from http://docs.nvidia.com/cuda/cuda-c-programming-guide
20
หนวยประมวลผลกลางมกจะเรยกวา “host” และในหนวยประมวลผลกราฟกจะเรยกวา “device” ตวแปลภาษาเปนตวจดการแยกสวนการทางานทงสองออกจากสาหรบโคดทเกยวของในหนวยประมวลผลกราฟก จะมคาสงเพมเตมเฉพาะเขามา เชน คาสงการคดลอกคาจากหนวยความจา host ไปยง device หรอจาก device ไปยง host คาสงการจดสรรขอมลบน device คาสงการ
synchronize เทรด เปนตน
ภาพท 2.9 การทางานรวมกนระหวาง host และ device
ทมา Nvidia, CUDA C Programming Guide, Accessed May 2, 2015, Available from
http://docs.nvidia.com/cuda/cuda-c-programming-guide
ภาพท 2.9 แสดงใหเหนถงขนตอนการทางานรวมกนโดยเรมตนการทางานบนหนวยประมวลผลกลางกจะทางานตามลาดบ และเมอตองการประมวลผลบน device จะทาการคดลอก
21
ขอมลทตองการประมวลผลไปยงหนวยความจาของหนวยประมวลผลกราฟก เมอทาการประมวลผลเสรจจะทาการคดลอกผลลพธกลบลงมาทหนวยความจาของหนวยประมวลผลกลาง
การทางานของ CUDA มสถาปตยกรรมมการทางานพนฐานในระดบเทรด แตละเทรด
รวมกนอยในบลอก (block) โดยในหนงบลอกจะถกประมวลผลเสมอนพรอมกนบนสตรมมลตโปรเซสเซอร (Stream Multiprocessor : SM) และสามารถใชหนวยความจารวมกน (shared
memory) ได แตละบลอกรวมอยในกรด (grid) เดยวกน
ภาพท 2.10 กรด บลอกและเทรดบนสถาปตยกรรม CUDA
ทมา Nvidia, CUDA C Programming Guide, Accessed May 2, 2015, Available from
http://docs.nvidia.com/cuda/cuda-c-programming-guide
22
สาหรบหนวยความจาของ CUDA จะมหลายประเภทเพอใหเหมาะสมกบการใชงาน ดงน
หนวยความจาโกลบอล (global memory) คอหนวยความจาหลกของหนวยประมวลผลกราฟก
ขนาดใหญทสด ทกเทรดสามารถเขาถงได แตมขอเสยคอใชเวลาในการเขาถงหนวยความจาชนดนมาก
หนวยความจาคาคงท (constant memory) คอหนวยความจาทใชในการเกบคาคงทตางๆ แมวาหนวยความจาชนดนจะอยทเดยวกบหนวยความจาหลกแตมแคช (cache) เพอชวยเพมและมขนาดเลก ประสทธภาพในการเขาถง
หนวยความจาเทกเจอร (texture memory) คอหนวยความจาใชสาหรบอานเพยงอยางเดยว เปนหนวยความจาแบบแคชสาหรบการเขาถงรปแบบ 2 มต
หนวยความจาโลคอล (local memory) คอหนวยความจาทใชในแตละเทรดโดยเปนสวนทเกนมาจากหนวยความจารจสเตอร (register memory) ในแตละเทรด มความเรวในการเขาถงทตากวา แตมขนาดทใหญกวาเมอเทยบกบหนวยความจารจสเตอร
หนวยความจารจสเตอร (register memory) คอหนวยความจาทใชในแตละเทรด มความเรวในการเขาถงขอมลทสงแตมขนาดเลก
หนวยความจารวม (shared memory) คอหนวยความจาทเทรดทอยในบลอกเดยวกนใชรวมกนได มความเรวในการเขานอยกวาการใชหนวยความจาหลกแตจะตองเสยเวลาในการสรางหนวยความจาประเภทนกอน
23
ภาพท 2.11 หนวยความจาของ CUDA
ทมา Jeremiah van Oosten, Introduction to CUDA 5.0, Accessed May 2, 2015, Available from
http://www.3dgep.com/introduction-to-cuda-5-0/
สตรม (stream) คอลาดบของตวดาเนนการทเขาทางานบนหนวยประมวลผล โดยปกตถาเราไมไดมการกาหนดการใชงานของสตรม การทางานทงหมดจะถกทางานอยบนสตรมเดยวกนตงแตการนาเขาขอมล การประมวลผล รวมถงการนาขอมลออก แตเราสามารถใชสตรมเขามาชวย โดยสรางหลายสตรมและแบงการทางานหลายสตรมใหพรอมกนเพอลดระยะเวลาในการทางานทงหมดลง ทงนขนอยกบความอสระของขอมลและโครงสรางโปรแกรม
24
ภาพท 2.12 เปรยบเทยบการทางานแบบ sequential และ stream
จากภาพท 2.12 จะเหนไดวาการทางานแบบ sequential คอใชเพยงสตรมเดยวในการทางาน การทางานในแตละขนตอนจะตองรอขนตอนกอนหนาทางานกบขอมลทงหมดเสรจกอน แตในการทางานแบบ stream คอมการนาสตรมหลายสตรมเพอทางานรวมกนขอมลแตละชด ดงในภาพจะเหนไดวาแบงงานออกเปนสามสวน H2D kernel(K) และ D2H และใช 3 สตรมโดย D2H1 คอการยายขอมลจาก device ไปยง host ครงท 1 และ D2H2 คอการยายขอมลจาก device ไปยง host ครงท
2 และ K1 คอการรนโคดบนหนวยประมวลผลกราฟกหรอ Kernel ครงท 1 และ K2 คอการรน
Kernel code ครงท 2 จะเหนวาเมอเรมทา D2H1 จะเรมทา K2 ไดเลยเพราะทางานบนแตละสตรมแยกกน
OpenGL (Open Graphic Library) เปน API (Application Programming Interface) สาหรบการสรางภาพ 2 มตและ 3 มต โดยสามารถทางานไดในหลายแพลตฟอรม สวนใหญจะทางานรวมกบหนวยประมวลผลกราฟก ถกพฒนาขนในป ค.ศ. 1992 โดย Silicon Graphics Inc. (SGI) แตปจจบนอยในการดแลของ Khronos
Group และ The OpenGL Architecture Review Board (ARB) ซงมกลมผผลตหนวยประมวลผลกราฟกรวมอยดวยและไดมการออกไลบราลเพมเตมเพอเพมประสทธภาพของการทางานรวมกนของ OpenGL และหนวยประมวลผลของผผลตดงกลาว ตวอยางเชน CUDA กมไลบราลเพมเตม
25
เพอใชสาหรบใชหนวยความจารวมกน โดยทประมวลผลโดย CUDA และนาไปแสดงผลดวย
OpenGL เปนตน ไลบราลพนฐานของ OpenGL คอ Graphic Library (GL) ซงใชในการสรางรปทรงเรขาคณตพนฐาน และมอกสองไลบราลยอยคอ OpenGL Utility Library (GLU) สาหรบสรางวตถทเกดจากรปทรงเรขาคณตพนฐาน อกไลบราลหนงคอ OpenGL Utility Toolkit (GLUT) ใชสาหรบจดการเกยวกบหนาตางของโปรแกรม
ภาพท 2.13 รปทรงเรขาคณตพนฐานของ OpenGL
รปทรงเรขาคณตพนฐานของ OpenGL ประกอบดวย จด, เสนและรปเหลยม โดยนารปทรงพนฐานเหลานไปสรางเปนวตถอน ๆ ตอไป ตวอยางเชน ภาพท 2.14 แสดงใหเหนถงการสรางเสนโคงโดยใชจดและเสนทนามาตอกน
ภาพท 2.14 การสรางเสนโคงจากจดและเสน
งานวจยทเกยวของ
งานวจยของ Kanok Hourkumnuaed and Chantana Phongpensri (2011) [13] เปนงานวจยทจาลองการจบอนภาคในสนามแมเหลกแบบออน โดยในงานวจยนจะแบงออกเปน สวนหลกๆ คอ สวนทใชในการคานวณหาคาความหนาแนนของอนภาคแตละพนทเปนสวนทหนง ในงานวจยนไดเลอกใชการประมวลผลแบบขนานโดยใชเทคนค Message Passing Interface (MPI) เขามาทางาน
26
และสวนการจาลองการเคลอนทของอนภาคเปนสวนทสองโดยนา VPython เขามาใช จากผลงานวจยจะเหนไดวาเวลาทใชในการประมวลผลแบบขนานโดยใชเทคนค MPI มเวลาลดลงจากเดมและเปนแนวทางในการนาเทคนคการประมวลผลแบบขนานแบบอนเขามาพฒนาเพอสรางแบบจาลองการจบอนภาค
Zhiyi Yang and Yong Pu (2008) [14] นาเอาเทคนค CUDA เขามาประมวลผลภาพดจตอล ในงานวจยนไดเลอกใช Remove Clouds, Histogram Equalization, Edge Detection และ DCT
encode & decode ทาการทดลองกบรปภาพหลายขนาด เปรยบเทยบเวลาในการทางานกบการประมวลผลดวยหนวยประมวลผลกลาง จากงานวจยแสดงใหเหนวาการใชเทคนค CUDA มความเรวกวาการประมวลผลดวยหนวยประมวลผลกลางเปนอยางมาก ตวอยางเชน ในกระบวนการ Remove Clouds มความเรวทมากกวาถง เทา กระบวนการ Histogram Equalization มความเรวทมากกวาท เทา เปนตน และมแนวโนมของประสทธภาพทดกวาในลกษณะน แมภาพจะมขนาดและความละเอยดทใหญขน
N.P. Karundasa and D.N. Ranasinghe (2009) [15] นาเสนอการเพมประสทธภาพของการประมวลผลโดยใชเทคนค CUDA โดยใช MPI เขามาทางานรวมกน งานวจยนไดนาเสนอดวย ขนตอนวธ คอ Strassens algorithm และ Congugate Gradient method สาหรบทงการทางานของทงสองขนตอนวธทผวจยไดนาเสนอมความตางกนของขอมล โดยในขนตอนวธ Strassens algorithm ใชขอมลทเปนอสระตอกน แตสาหรบขนตอนวธ Conjugate Gradient method ใชขอมลทไมมความเปนอสระตอกน สาหรบขนตอนการทดลองแบงออกเปน สวน สวนแรกคอทาการทดลองโดยใชการทางานดวยขนตอนวธทงสองบนเทคนค CUDA โดยใชบนหนวยประมวลผลกราฟกชนดเดยวกนแตหนวยประมวลผลกลางตางกน สวนทสองคอใชเทคนคการประมวลผลรวมกนระหวาง CUDA และ MPI โดยทดลองบนหนวยประมวลผลกลางทแตกตางกนแตใชหนวยประมวลผลกราฟกชนดเดยวกน จากผลการทดลองจะเหนไดวาในแบบแรกเวลาทใชในการประมวลผลมความตางกนเมอใชหนวยประมวลผลกลางทตางกน เนองจากแมจะใชเทคนค CUDA เพยงอยางเดยวแตการทางานสวนหลกยงตองอาศยหนวยประมวลผลกลางเขามาเกยวของ และในทดลองทสองนาเวลาทใชในการประมวลผลดวยเทคนค CUDA เพยงอยางเดยวกบการใชการทางานรวมกนระหวาง CUDA และ MPI กบขนตอนวธการทงสองแบบการทใช MPI เขามารวมทางานกบ CUDA ไมไดจะไดประสทธภาพทดกวาเสมอไป ตองขนอยกบขนตอนวธวาเหมาะสมทจะนามาใชดวยหรอไม
Chao-Tung Yang and Cheng-Fang Lin (2011) [16] ไดนาเสนอการทดลองการจบคการทางานแบบขนานหรอเรยกวา “Hybrid” โดยใชเทคนคการประมวลผลรวมกนระหวาง CUDA กบ
27
OpenMP และ CUDA กบ MPI เพอวดประสทธภาพการทางานบนคลสเตอรคอมพวเตอร ในการประมวลผลในหนวยประมวลผลกราฟกในระดบเทรด มการใชหนวยความจารวมกนเขามารวม ในการทดลองผวจยไดใช ขนตอนวธการและปญหาทมขนาดตางกนคอ Matrix multiplications,
MD5 และ Bubble sort ผลการทดลองแสดงใหเหนวา การทางานของ Matrix multiplications ดวยการประมวลรวมมประสทธภาพทดกวา การทางานของ MD5 ทางานดวย CUDA และ OpenMP
ผลลพธคอ CUDA ใชเวลานอยกวาในการประมวลผลและในการทางานของ Bubble sort โดยใชเทคนคการประมวลรวมทแตกตางกน ผลลพธคอ เทคนคการประมวลผลรวม CUDA กบ OpenMP
มประสทธภาพทดกวา
27
บทท
วธการดาเนนการวจย
ในงานวจยนตองการออกแบบขนตอนวธทคานวณดวย CUDA เพอนาไปสรางแบบจาลองการจบอนภาคแมเหลกอยางออนขนาดไมโครเมตรในสนามแมเหลกเกรเดยนทสง ซงมขนตอนทงหมด ขนตอน คอ
ขนตอนท ศกษารปแบบการจบอนภาคดวยสนามแมเหลกเกรเดยนทสงและพฒนาโปรแกรมสาหรบการประมวลผลแบบลาดบขนเพอพฒนาไปสการคานวณดวย CUDA
ขนตอนท 2 ออกแบบขนตอนวธการคานวณ CUDA ในรปแบบทตางกน 5 รปแบบ โดยในแตละรปแบบมรปแบบทแตกตางกน รปแบบยอย
ขนตอนท วดประสทธภาพของแตละรปแบบเพอหารปแบบการคานวณทเหมาะสมเพอนาไปสรางแบบจาลองโดยอยในภาพกราฟกเคลอนไหว มต
อปกรณทใชในการทดลอง
เครองคอมพวเตอรแบบตงโตะ 1 เครอง ประกอบดวย
หนวยประมวลผลกลาง Intel® Core™ i5-4460 CPU@ 3.20 GHz. x 4
หนวยความจาเขาถงโดยสม DDR3 ขนาด 8 GB.
หนวยความจาอานอยางเดยวขนาด 250 GB.
หนวยประมวลผลกราฟก GeForce GTX 760, GDDR5 2 GB. จานวน 2 ใบ
ระบบปฏบตการ Ubuntu 14.04 LTS 64 bit
CUDA Driver version และ Runtime Version 6.5
OpenGL version 4.40 NVIDIA 340
28
ขนตอนการทดลอง
ในงานวจยนจะทาการพฒนาอลกอรทมแบบขนานโดยอาศยแพลตฟอรม CUDA มขนตอนการทดลองโดยการทาการทดสอบกบรปแบบการคานวณดวย CUDA ทแตกตางเพอหารปแบบทเหมาะสมนาไปสรางระบบแสดงผล
จากสมการความตอเนองท ( . ) ซงใชในการคานวณหาคาความเขมขนภายในแตละสวนยอยของโดเมน ณ เวลาหนง ๆ ดงในภาพท 3.1 โดยในการคานวณ คาความเขมขนของแตละสวนยอยจะถกเกบขอมลเพอใชในการคานวณดวยอะเรย มต สาหรบในการคานวณหาความเขมขนของแตละอนภาคตามสมการท ( . ) จะตองใชการคานวณจากจดโดยรอบทง จด ดงในภาพท 3.2
ภาพท 3.1 ความเขมขนของอนภาครอบเสนใยตวจบในโดเมนทถกแบงเปนสวนยอยดวยพกดเชงขว
(a) (b)
ภาพท 3.2 ความสมพนธเพอใชหาความเขมขนภายในสวนยอยโดเมนแบบ (a) ปกตและ (b) พเศษ
29
จากการศกษาการพฒนาโปรแกรมแบบลาดบทางานบนหนวยประมวลผลกลางเรมตนจากขนตอนการกาหนดคาความเขมขนเรมตนใหกบทกสวนยอยในโดเมน โดยเกบไวในรปแบบอะเรย
2 มต สาหรบขนตอนการคานวณเพอหาความเขมขนของจด ตรงกลางสวนยอยหนง ๆ ทเวลาใด ๆ โดยการใชคาความเขมขนของเวลากอนหนา ทาการคานวณตามจานวนรอบโดยองจากเวลาทตองการดความเขมขน ในการคานวณหาจะตองใชการวนลป 2 ชนเพอใหสามารถเขาถงการคานวณหาความเขมขนในแตละสวนยอยไดจนครบ จากสวนดงกลาวผวจยเหนวาสามารถนามาปรบใหอยในรปการประมวลผลแบบขนานได
ภาพท 3.3 ขนตอนการทางานของโปรแกรมแบบลาดบ
start
Initial
Input
Save
end
30
ในขนตอนการออกแบบการคานวณ CUDA สาหรบงานวจยน จะมรปแบบขนตอนวธการอยทงหมด 5 รปแบบ ดงน
รปแบบท 1 การประมวลผลโดยใชหนงหนวยประมวลผลกราฟกแบบไมมการใชหนวยความจารวมกน (Single GPU, non-shared memory) โดย 1 เทรดจะคานวณหาความเขมขนของอนภาคใน 1 สวนยอย ลกษณะการทางานจะทาทละบลอก (ตามขนาดของ เทรดตอบลอก) การเรมตนการประมวลผลบนหนวยประมวลผลกราฟกจะตองนาคาความเขมขนทเวลากอนหนาของสวนยอยทงหมดจากหนวยประมวลผลกลางมาเกบไวยง หนวยความจาโกลบอล โดยในการทางานแตละเทรดกจะเขาถงขอมลทอยบนหนวยความจาโกบอลโดยตรง และเมอประมวลผลครบรอบจะทาการคดลอกขอมลกลบไปยงหนวยความจาหลกของหนวยประมวลผลกลาง แตทางผวจยเหนวาการโอนถายขอมลไป – กลบระหวางหนวยประมวลผลกลางและหนวยประมวลผลกราฟกใชเวลานานมาก (เมอเทยบกบการทางานในขนตอนอน ๆ ) ทางผวจยจงปรบการทางานโดยไมโอนถายขอมลไปมาเมอทางานครบรอบ แตจะใชตวชเขามาชวยเพอเปลยนตาแหนงความเขมขนระหวางเวลากอนหนาและเวลาปจจบนสลบกนไปมา เมอทางานจนครบตามจานวนรอบทตองการจงมการโอนถายขอมลจากหนวยความจาของหนวยประมวลผลกราฟกมายงหนวยความจาหลกของหนวยประมวลผลกลาง
ภาพท 3.4 แสดงการทางานแบบไมใชหนวยความจารวม
จากภาพท 3.4 แสดงใหเหนถงการทางานพรอมกนโดยบรเวณสเขยวคอขอมลทอยบนหนวยความจาหลกทงหมด สวนสแดงคอบลอกทแตละเทรดขางในทางานเสมอนพรอมกน เมอบลอกหนงทางานเสรจกจะขยบการทางานไปตามขนาดของบลอกจนครบทงหมดของขอมลคอการทางานหนงรอบ
31
รปแบบท 2 การประมวลผลโดยใชหนงหนวยประมวลผลกราฟกแบบมการใชหนวยความจารวมกน จากรปแบบท 1 ซงในการคานวณคาความเขมขนของแตละสวนยอยจะตองใชคาความเขมขนของสวนยอยทลอมรอบ 4 สวนยอยซงมการเขาถงขอมลจากหนวยความจาหลกหลายครง ทางผวจยจงนาหนวยความจารวมเขามาเพอเพมความเรวในการเขาถงขอมลของอนภาครอบดาน
ภาพท 3.5 แสดงการทางานแบบใชหนวยความจารวม
จากภาพท 3.5 แสดงใหเหนถงขนาดของหนวยความจารวมทใชในแตละบลอกโดยจะมใหญกวาขนาดของบลอกในแตละดานสองจด เพอใหเหมาะสมกบวธการคานวณ
รปแบบท 3 การประมวลผลบนหนงหนวยประมวลผลโดยใชสตรมเขามาทางานรวมโดยหลกการทางานคอแบงขอมลออกตามจานวนสตรมเนองจากในการคานวณแตละอนภาคมความอสระกนทางดานตวดาเนนการ สาหรบวธการแบงขอมลผวจยเลอกใชวธการแบงขอมลตามแถวแตขอมลทงหมดยงอยในหนวยความจาหลก เรมแบงตงแตการนาขอมลเขาหนวยความจาหลก การคานวณและการนาขอมลออกจากหนวยความจาหลก ทางผวจยหวงวาจะทาใหเกดการทางานรวมกนทาใหลดเวลาในการประมวลผลลงมาไดอก
32
ภาพท 3.6 แสดงการแบงขอมลเพอทางานโดยใชสตรม
รปแบบท 4 การใชหนงหนวยประมวลผลโดยใชหนวยความจารวมและสตรม เรมตนใชสตรมเขามาแบงสายการทางานของขอมลเพอลดเวลาในการโอนถายขอมลและใชหนวยความจารวมในการคานวณเพอชวยลดเวลาในการเขาถงหนวยความจาโกลบอลของหนวยประมวลผลกราฟก
รปแบบท 5 การนาหนวยประมวลผลกราฟกเขามาใชรวมการทางานอกหนงใบทเหมอนกน โดยการทางานจะแบงขอมลในลกษณะเดยวกบการใชสตรมคอแบงครงตามแถว ทาใหไดขอมลเปนสองชน โดยแตละชนจะมขนาดเพมขน 2 แถวคอขอบบนและขอบลางเพอใชในการคานวณตามวธการ และนาแตละสวนสงไปประมวลผลแยกกนในหนวยความจาแตละใบ หลงจากทประมวลผลเสรจหนงรอบยงไมสามารถทางานในรอบตอไปไดทนท จะตองมการแลกเปลยนขอบของขอมลทงสองชนเพอปรบคาสาหรบใชการคานวณในรอบใหม
33
ภาพท 3.7 การแลกเปลยนขอบของขอมลระหวางหนวยประมวลผลกราฟกการดสองใบ
โดยในแตละรปแบบหลกม รปแบบยอยแตกตางกนโดยจานวน เทรดตอบลอก ทตางกนดงน (8,8), (8,16), (8,32), (16,8), (16,16), (16,32), (32,8), (32,16) และ (32,32)
การวดและบนทกผล โดยการใชทง 5 รปแบบเพอคานวณหาความเขมขนโดยกาหนดความเขมขนคาเรมตนในโดเมน จานวนรอบทใชในการคานวณทเทากน จากนนตรวจสอบผลลพธทไดจากการคานวณและวดเวลาทใชในการคานวณ เพอหารปแบบทเหมาะสมสาหรบนาไปสรางระบบแสดงผล
การสรางแบบจาลอง
ในการสรางแบบจาลองผวจยไดเลอกใช OpenGL เพอนามาสรางภาพกราฟก 2 มต เนองจาก CUDA มไลบราลสาหรบการใชเสมอนหนวยความจาเดยวกน มขนตอนตามภาพท 3.8
โดยเรมตนทการกาหนดคาเรมตนใหกบแตละอนภาคบนหนวยความจาหลกของหนวยประมวลผลกลาง สรางตวแปรของ CUDA โดยโครงสรางขอมลเปน graphic resource เพอใชงานรวมกบ
OpenGL จากนนทาการกาหนดคาเรมตนตาง ๆ ของ OpenGL เชน สรางหนาตางของโปรแกรมประยกต เลอกรปแบบสสาหรบการแสดงผล กาหนดความกวาง – ยาวของหนาตาง เปนตน รวมถงสรางบฟเฟอรเพอเกบคาทใชสาหรบการแสดงผล จากนนทาการเชอมตอกนระหวางตวแปรของ
34
CUDA และ บฟเฟอรของ OpenGL ทาการเรยกใชงานฟงกชนสาหรบการแสดงผลโดยไปเรยกให
CUDA ทาการประมวลผลใน 1 รอบ และ OpenGL นาคาจากบฟเฟอรมาแสดงผล ทางานจนกวาจะถงเวลาทกาหนด
ภาพท 3.8 แผนผงการทางานรวมกนระหวาง CUDA และ OpenGL ในการสรางแบบจาลอง
ในการแสดงผลจะใชสเพอแสดงคาความเขมขนของแตละอนภาค สาหรบการคานวณหาคาซงเลอกใชโมเดล RGB กาหนดคาของแตละสตามคาความเขมขนของอนภาคทเปลยนไป ตามภาพท 3.9
35
ภาพท 3.9 ความสมพนธระหวางความเขมขนและคาสในแตละสของโมเดล RGB
สรปผลการทดลองและจดทารายงานวทยานพนธ
เมอไดผลการทดลองทาการวเคราะหและประเมนตามจดประสงคทกาหนดแลว จงจดทารายงานวทยานพนธ
36
บทท 4
ผลการทดลอง
งานวจยนไดทาการสรางแบบจาลอง โดยใช OpenGL เปนเครองมอในการแสดงผลคาความเขมขนของอนภาคในแตละสวนยอยของโดเมน เขามาทางานรวมกบ CUDA ซงใชในการคานวณหาคาความเขมขนทเวลาตาง ๆ ของภายในสวนยอยของโดเมน แบบจาลองจะอยในรปแบบโปรแกรมประยกตทผใชงานสามารถกาหนดคาตาง ๆ ได เชน เวลาสดทายทตองการจาลอง คาความเขมขนเรมตนของอนภาคภายในโดเมน เปนตน (สาหรบวธการใชงานโปรแกรมประยกตอยในภาคผนวก ก.) สาหรบแบบจาลองทไดอยในภาพกราฟกเคลอนไหว 2 มต
ภาพท 4.1 แบบจาลองคอมพวเตอรแบบขนานการจบอนภาคแมเหลกทมขนาดไมโครเมตรในสนามแมเหลกเกรเดยนทสง
37
จากภาพท 4.1 แสดงความเขมขนของอนภาค โดยวงกลมสเทาตรงกลางคอเสนใยตวจบ วงกลมภายนอกคอโดเมนทอยรอบ ๆ เสนใย สทแตกตางกนแสดงถงความเขมขนทแตกตางกน (10-5 – 10-1) โดยแถบส (ภาพท 4.2) แสดงตงแตเวลาเรมตนจนถงเวลาทกาหนด
ภาพท 4.2 แถบสแสดงตามความเขมขนของอนภาค
ในการคานวณหาความเขมขนภายในแตละสวนยอยของโดเมนในผลการทดลองในภาพท 24 น มพารามเตอรการจาลองดงน
อนภาคแมเหลกอยางออน Mn2P2O7 เจอปนอยในนาคา p- f = 4.73 10-3
รศมเฉลยของอนภาคแมเหลกอยางออน Mn2P2O7 bp = 1.2 10-8 m
รศมเฉลยของเสนใยตวจบ a = 50 10-6 m
สภาพแมเหลกอมตวของเสนใยตวจบ MWs = 1.6 106 A/m
สนามแมเหลกสมาเสมอภายนอก H0 =1.0 106 A/m
ความเขมขนเรมตน C0 = 1.0 10-3
ความเขมขนอมตว Csat = 1.0 10-1
Grid step ra = 1.0 10-2, = 1.0 10-1
รศมของโดเมนวดเปนจานวนเทาของรศมตวจบ raL = 10.0
Step ของเวลา normalized = 1.0 10-5
รปแบบการกระจายความเขมขนอนภาคทคานวณและแสดงภาพออกมาเหมอนกบผลทไดจากการคานวณดวยอลกอรทมแบบตามลาดบ [ ] และผลการแสดงภาพจากโปรแกรมสาเรจรปทนยมใชเชน Matlab
38
การประเมนประสทธภาพ
ในการทาการทดลอง ผวจยทาการวดเวลาทใชในการทดลอง หนวยเปนวนาท โดยวดเฉพาะสวนทใชในการประมวลผลบนหนวยประมวลผลกราฟก ในแตละกรณจะทาการทดลองทงหมด 10 รอบ นามาหาคาเฉลยเพอใชเปรยบเทยบตอไป
การประเมนการทางานของแตละวธการจะพจารณาจากคา speedup โดยใชสญลกษณ คานวณจากอตราสวนระหวางเวลาทใชในการคานวณแบบลาดบและเวลาทใชในการคานวณแบบขนาน ดงสมการ
(4.1)
เมอ คอเวลาทใชในการคานวณแบบขนาน และ คอเวลาทใชในการคานวณแบบขนาน
การประมวลผลบนหนวยประมวลผลกลางแบบลาดบ
จากตารางท 4.1 แสดงเวลาททาการทดลองกบขอมลชดเดยวกน ตามพารามเตอรตงตนไดแก การประมวลผลแบบขนานบนหนงหนวยประมวลผลกราฟก, การประมวลผลแบบขนานบนหนงหนวยประมวลผลผลกราฟกโดยใชหนวยความจารวม, การประมวลผลแบบขนานโดยบนหนงหนวยประมวลผลผลกราฟกโดยใชสตรม, การประมวลผลแบบขนานบนหนงหนวยประมวลผลผลกราฟกโดยใชหนวยความจารวมและสตรม และการประมวลผลแบบขนานบนสองหนวยประมวลผลผลกราฟก แตกตางกนทจานวนรอบ ไดแก 1, 10, 100 และ 1,000 รอบตามลาดบ ทาการทดสอบ 10 รอบเพอหาคาเฉลยของเวลา
39
ตารางท 4.1 เวลาของการประมวลบนหนวยประมวลผลกลางแบบลาดบ
CPU,sequential 1 10 100 1000 1 0.5867 5.8144 57.6225 567.2995 2 0.5811 5.8031 57.8869 564.5166 3 0.5808 5.8053 57.4631 563.9077 4 0.5858 5.8049 57.3727 564.4167 5 0.5819 5.8483 57.2553 564.4407 6 0.5792 5.7947 57.9264 563.8662 7 0.5869 5.7555 57.7808 563.9269 8 0.5916 5.7553 57.2261 564.5859 9 0.5846 5.8016 57.2250 564.3591
10 0.5793 5.8062 57.9597 563.9060 average 0.5838 5.7990 57.5718 564.5225
40
การวดประสทธภาพขนาดของบลอกทเหมาะสม
ตารางท 4.2 แสดงถงเวลาเฉลยใชจานวนเทรดตอบลอก (block size) ทแตกตางกนทงหมด 9 รปแบบ ประมวลผลบนหนวยประมวลผลกราฟกหนงหนวย ทาการทดลองทจานวนรอบแตกตางกน
ตารางท 4.2 เวลาเฉลยของการประมวลผลบนหนงหนวยประมวลผลกราฟก
1 GPU,non-shared 8*8 8*16 8*32 16*8 16*16 16*32 32*8 32*16 32*3
1 iteration 0.0234 0.0231 0.0237 0.0232 0.0240 0.0243 0.0245 0.0260 0.010 iterations 0.1032 0.0943 0.0967 0.0947 0.0982 0.1039 0.1082 0.1154 0.1
100 iterations 0.8720 0.8146 0.8378 0.8225 0.8499 0.9071 0.9468 1.0315 1.31,000 iterations 8.4945 7.9427 8.1795 8.0535 8.3375 8.8962 9.3255 10.1646 12.9
41
ภาพท 4.3 เปรยบเทยบเวลาทใชในการทางานทตางกนของ block size ในจานวนรอบเทากนบนหนงหนวยประมวลผลกราฟก
0
2
4
6
8
10
12
14
8*8 8*16 8*32 16*8 16*1616*32 32*8 32*1632*32
time
(sec
.)
block size
single GPU, non-shared
1 iteration
10 iterations
100 iterations
1,000 iterations
42
ภาพท 4.4 เปรยบเทยบ Occupancy, Global Memory Load Efficiency และ Global Memory Store Efficiency ใน block size ทตางกนบนหนงหนวยประมวลผลกราฟก
จากภาพท . จะเหนไดวา ในการทางาน , , และ , รอบลกษณะเสนทไดมแนวโนมไปในทางเดยวกน โดยเวลาทใชในการคานวณนอยสดในแตละจานวนรอบการทางานคอ จานวนเทรดตอบลอก ( , ) และจากภาพท 4.4 แสดงใหเหน Occupancy ซงคานวณไดจากใชงาน register และ shared memory ในแตละเทรดซงในการประมวลผลบนหนงหนวยความจา มคา Occupancy สงสดท ท block size ขนาด , 256 และ 512 และท block size มการแบงจานวนเทรดตอบลอกทแตกตางกน ยกตวอยางเชน block size ท มการแบงจานวนเทรดตอบลอกทแตกตางกน คอ (8,16) และ (16,8) แตจะไดวาท (8,16) ใชเวลาการทางานทนอยกวาเนองจากมคา Global Memory Load Efficiency และ Global Memory Store Efficiency ทดกวา เนองจากรปแบบการแบงเทรดทเหมาะสมมผลตอประสทธภาพการเขาถงขอมลในหนวยความจาหลกซงมการเรยกใชงานในทกรอบการทางาน
0
20
40
60
80
8*8(64)
8*16(128)
8*32(256)
16*8(128)
16*16(256)
16*32(512)
32*8(256)
32*16(512)
32*32(1024)
perc
enta
ge
block size
single GPU, non-shared
Occupancy
Global Memory LoadEfficiency
Global Memory StoreEfficiency
43
ภาพท 4.5 เปรยบเทยบเวลาทใชในการทางานทจานวน 1,000 รอบทขนาดของโดเมนและ block size ทตางกนบนหนงหนวยประมวลผลกราฟก จากภาพท 4.5 แสดงใหเหนวามการเพมและลดขนาดของโดเมน โดยเลอกการทางานท 1,000 รอบ block size ทเหมาะสมทสดคอ (8,16)
ภาพท 4.6 เปรยบเทยบเวลาทใชในการทางานทตางกนของ block size ในจานวนรอบเทากนบนหนงหนวยประมวลผลกราฟกและมการใชหนวยความจารวม
0
10
20
30
40
50
60
8*8 8*16 8*32 16*8 16*16 16*32 32*8 32*16 32*32
time(
sec.
)
block size
single GPU, non-shared (1,000 iterations)
1800*451
3600*901
7200*1801
0
2
4
6
8
10
12
8*8 8*16 8*32 16*8 16*16 16*32 32*8 32*16 32*32
time
(sec
.)
block size
single GPU, shared
1 iteration
10 iterations
100 iterations
1,000 iterations
44
ภาพท 4.7 เปรยบเทยบเวลาทใชในการทางานทจานวน 1,000 รอบทขนาดของโดเมนและ block size ทตางกนบนหนงหนวยประมวลผลกราฟกแบบใชหนวยความจารวม
ภาพท 4.8 เปรยบเทยบเวลาทใชในการทางานทตางกนของ block size ในจานวนรอบเทากนบนหนงหนวยประมวลผลแบบสตรม
0
5
10
15
20
25
30
35
40
45
8*8 8*16 8*32 16*8 16*16 16*32 32*8 32*16 32*32
time
(sec
.)
block size
single GPU, shared (1,000 iterations)
1800*451
3600*901
7200*1801
0
2
4
6
8
10
12
14
8*8 8*16 8*32 16*8 16*16 16*32 32*8 32*16 32*32
time
(sec
.)
block size
single GPU, streams
1 iteration
10 iterations
100 iterations
1,000 iterations
45
ภาพท 4.9 เปรยบเทยบเวลาทใชในการทางานทจานวน 1,000 รอบทขนาดของโดเมนและ block size ทตางกนบนหนงหนวยประมวลผลกราฟกแบบสตรม
ภาพท 4.10 เปรยบเทยบเวลาทใชในการทางานทตางกนของ block size ในจานวนรอบเทากนบนหนงหนวยประมวลผลกราฟกแบบสตรมและหนวยความจารวม
0
10
20
30
40
50
60
8*8 8*16 8*32 16*8 16*16 16*32 32*8 32*16 32*32
time
(Sec
.)
block size
single GPU, non-shared, streams (1,000 iterations)
1800*451
3600*901
7200*1801
0
2
4
6
8
10
12
8*8 8*16 8*32 16*8 16*16 16*32 32*8 32*16 32*32
time
(sec
.)
block size
single GPU, shared, streams
1 iteration
10 iterations
100 iterations
1,000 iterations
46
ภาพท 4.11 เปรยบเทยบเวลาทใชในการทางานทจานวน 1,000 รอบทขนาดของโดเมนและ block size ทตางกนบนหนงหนวยประมวลผลกราฟกแบบสตรมและหนวยความจารวม
ภาพท 4.12 เปรยบเทยบเวลาทใชในการทางานทตางกนของ block size ในจานวนรอบเทากนบนสองหนวยประมวลผลกราฟก
0
5
10
15
20
25
30
35
40
45
8*8 8*16 8*32 16*8 16*16 16*32 32*8 32*16 32*32
time
(sec
.)
block size
single GPU, shread, streams (1,000 iterations)
1800*451
3600*901
7200*1801
0
1
2
3
4
5
6
7
8
8*8 8*16 8*32 16*8 16*16 16*32 32*8 32*16 32*32
time
(sec
.)
block size
two GPU, non-shared
1 iteration
10 iterations
100 iterations
1,000 iterations
47
ภาพท 4.13 เปรยบเทยบเวลาทใชในการทางานทจานวน 1,000 รอบทขนาดของโดเมนและ block size ทตางกนบนสองหนวยประมวลผลกราฟก
จากภาพท 4.6 – 4.13 ซงมรปแบบการคานวณทแตกตางกนคอ การประมวลผลบนหนงหนวยประมวลผลกราฟกแบบใชหนวยความจารวม การประมวลผลบนหนงหนวยประมวลผลกราฟกแบบใชสตรม การประมวลผลบนหนงหนวยประมวลผลกราฟกแบบใชสตรมและหนวยความจารวม และการประมวลผลบนสองหนวยประมวลผลกราฟก จะเหนไดวาจานวนเทรดตอบลอกทใชในการคานวณนอยทสดในแตละรอบการทางาน คอ (8,16) ซงมเหตผลเชนเดยวกบการประมวลผลบนหนงหนวยประมวลผลกราฟก
0
5
10
15
20
25
30
8*8 8*16 8*32 16*8 16*16 16*32 32*8 32*16 32*32
time
(Sec
.)
block size
two GPUs, non-shared (1,000 iterations)
1800*451
3600*901
7200*1801
48
ภาพท 4.14 เปรยบเทยบ speedup ของแตละวธทรอบการทางานเดยวกน
ในการทดลองนจะทาการเลอกจานวนเทรดตอบลอก ( , ) ทจานวนรอบการทางานทแตกตางกนคอ , , และ , ตามลาดบ จากภาพท 4.14 แสดงใหเหนวา ในการทางานโดยใชจานวน 1 รอบการทางาน การทางานบนหนวยประมวลบนสองหนวยประมวลผล ม speedup ทตากวา การประมวลผลบนหนงหนวยประมวลผลแบบใชสตรมและการประมวลผลบนหนงหนวยประมวลผลโดยใชสตรมและหนวยความจารวม แตในจานวนรอบท 10, 100 และ 1,000 การทางานสองหนวยประมวลผลเปนไปตามหลกการคอเรวกวาการใชงานเพยงหนวยประมวลผลเดยว สาหรบสาเหตทเปนเชนนนเนองจากในการประมวลผลทมสตรมเขามาใชงาน จะทาการแบงขอมลและคดลอกระหวาง host และ device ทจานวน 1 รอบการทางาน จะใชการประมวลผลเพยงรอบเดยว เพราะฉะนนเวลาหลก ๆ ของแตละวธจะอยทเวลาในการโอนถายขอมล แตในรอบการทางานทเพมขน เวลาในการทางาน (kernel time) จะมผลตอเวลาทงหมดมากกวา เพราะตามอลกอรทม ไมวาจะทางานกรอบกจะมการโอนถายขอมลเพยงสองครงคอ เรมตนการทางานและสนสดการทางาน
เปรยบเทยบประสทธภาพระหวางการใชหนวยความจารวมและไมใชหนวยความรวม
ในการทดลองนจะเปรยบเทยบเวลาทใชในการทางานระหวางการประมวลผลบนหนงหนวยประมวลผลแบบไมใชหนวยความจารวมและการประมวลผลบนหนงหนวยประมวลผลกราฟกแบบใช
0
20
40
60
80
100
120
140
1 10 100 1000iterations
speedup
single GPU,non-shared
single GPU,shared
single GPU,stream
single GPU,shared,stream
two GPU,non-shared
49
หนวยความจารวม ทาการเปรยบเทยบ speed up กนทรอบการทางาน 1,000 รอบ จานวนเทรดตอบลอกทตางกน
ภาพท 4.15 เปรยบเทยบการทางานระหวางการใชหนวยความจารวมและไมใชหนวยความจารวม
ภาพท 4.15 แสดงใหเหนวาบลอกทมขนาดเลก จานวนเทรดตอบลอก (8,8) เมอไมใชหนวยความจารวมจะมประสทธภาพทดกวา เมอเพมขนาดของบลอกขนเรอย ๆ แนวโนมของการใชหนวยความจารวมจะมประสทธภาพดกวา สาเหตเนองจากแมวาในการใชงานหนวยความจารวมจะมความเรวในการเขาถงทเรวกวาการใชงานในหนวยความจาหลก แตในการทจะใชหนวยความจารวมไดจาเปนจะตองสรางหนวยความจารวมขนมาซงในการทดลองนขนาดของหนวยความจารวมจะแปรผนตรงกบขนาดของบลอก ในภาพท 4.16 จะแสดงการเปรยบเทยบการทางานของการใชหนวยความจารวมและไมใชโดยใชขนาดของบลอกสองขนาดคอ (8,8) และ (32,32) โดยแบงเวลาในการทางานออกเปน 4 สวนคอ สวนแรกคดลอกขอมลจาก host มา device (copy1, H to D) จะใชเวลาใกลเคยงกน สวนถดมาคอ pre kernel โดยในการใชงานหนวยความจารวมทาการสรางหนวยความจารวมบรเวณน จะเหนไดวา มเวลามากกวาแบบ ไมใชหนวยความจารวม แตเวลาถดมา kernel คอเวลาทใชในการคานวณ ในแบบทใชหนวยความจารวมจะมเวลาทนอยกวา เนองจากสามารถลดเวลาในการเขาถงขอมลได และสวนสดทายคอสวนทคดลอกขอมลจาก device กลบไปยง host กจะเหนไดวามเวลาทใกลเคยงกน
0
10
20
30
40
50
60
70
80
8*8 8*16 8*32 16*8 16*16 16*32 32*8 32*16 32*32
spee
dup
block size
1,000 iterations
non-shared
shared
50
ภาพท 4.16 เปรยบเทยบเวลาแตละสวนบน device ระหวางแบบทใชหนวยความจารวมและไมใช
เปรยบเทยบประสทธภาพระหวางการใชสตรมและไมใชสตรม
ในการทดลองนทาการเปรยบเทยบประสทธภาพการทางานระหวางการทางานบนหนงหนวยประมวลผลกราฟกแบบใชสตรมและไมใชสตรม โดยเลอกขนาดของบลอกท (8,16) ทาการทดลองบนจานวนรอบการทางานท 1 10 100 และ 1,000 วดประสทธภาพทไดดวยคา speedup โดยในการใชงานสตรมใชจานวน 2 สายสตรม
ภาพท 4.17 เปรยบเทยบประสทธภาพการทางานแบบมและไมมสตรม
0 5 10 15 20 25
single GPU/ shared/ (8,8)
single GPU/ non-shared/ (8,8)
single GPU/ shared/ (32,32)
single GPU/ non-shared/ (32,32)
time (sec.)
copy 1 (H to D)
pre kernel
kernel
copy 2 (D to H)
1 10 100 1000single GPU, non-shared 25.2612 61.4889 70.6744 71.0739single GPU, stream 45.1941 68.5215 71.4276 71.1273
0.000010.000020.000030.000040.000050.000060.000070.000080.0000
Axis
Titl
e
block size = (8,16)
51
จากภาพท 4.17 จะเหนไดวา ทจานวนรอบเทากบ 1 แบบใชสตรมจะมประสทธภาพทดเกอบสองเทา แตเมอจานวนรอบเพมขนประสทธภาพระหวางการใชสตรมและไมใชสตรมกลบลเขาหากน แตในแบบทใชสตรมยงมประสทธภาพท ดกวาเลกนอย สาเหตเนองจากในงานวจยน ถงแมจะมสตรมเขามาชวยในการแลกเปลยนขอมลและใชงาน kernel แตดวย อลกอรทมแลวมการแลกเปลยนขอมลเพยงสองครงคอกอน และหลงการใชงาน kernel ซงแมสตรมจะใชงานในการเรยกใชงาน kernel แตเนองจากตองมการรอการทางานของสตรมในแตละรอบใหเสรจพรอมกนเพอนาคาทไดไปใชในการคานวณในรอบถดไป ประสทธภาพของสตรมทดกวาจงเหนไดชดในการทางานเมอใชจานวนรอบนอย ๆ
เปรยบเทยบประสทธภาพระหวางการใชหนวยความจารวมกบสตรมและไมใชหนวยความจารวมกบสตรม
การทดลองนทาการเปรยบเทยบในการทางานบนหนงหนวยประมวลผลกราฟกใชสองเทคนคทางานรวมกนคอการใชหนวยความจารวมสตรมเปรยบเทยบกบการใชสตรมเพยงอยางเดยว โดยทดสอบแรกคอพจารณาจากขนาดของบลอก ทางานทจานวนรอบการทางานเดยวกนคอ 100 รอบ
ภาพท 4.18 เปรยบเทยบประสทธภาพการทางานระหวางการใชสตรมรวมกบหนวยความจารวมและไมใชหนวยความจารวมแตกตางกนทขนาดของบลอก
จากภาพท 4.18 แสดงใหเหนวาทขนาดบลอกทเลก การใชงานสตรมเพยงอยางเดยวมประสทธภาพทดกวาเมอเทยบกบการใชสตรมรวมกบหนวยความจารวม แตเมอขนาดบลอกมขนาดเพมขน การใชงานสตรมรวมกบหนวยความจารวมกลบมประสทธภาพทดกวา เชนเดยวกบการทดลองทเปรยบเทยบระหวางการประมวลผลบนหนงหนวยประมวลผลโดยใชหนวยความจารวมและไมใช
01020304050607080
spee
dup
block size
100 iterations
single GPU, shared,stream
single GPU, stream
52
เปรยบเทยบประสทธภาพการประมวลผลบนหนวยประมวลผลกราฟก
จากการทดลองในขางตน ไดมการเปรยบเทยบประสทธภาพการทางานบนหนงหนวยประมวลผลโดยจบคกนระหวางการใชหนวยความจารวมและไมใชหนวยความจารวม การใชสตรมและไมใช สดทายการใชสตรมรวมกบหนวยความจารวมและสตรมเพยงอยางเดยว ในการทดลองนเราจะนาทงหมดมาเปรยบเทยบกนเพอหาจดทมประสทธภาพทดทสดสาหรบการคานวณบนหนงหนวยประมวลผล ขนาดของบลอกทมประสทธภาพทดทสดคอ (8,16) ดงนนจงทาการทดลองเปรยบเทยบประสทธภาพโดยใชขนาดบลอกเดยวกนทางานบนรอบการทางานท 1, 10, 100 และ 1,000
ภาพท 4.19 เปรยบเทยบการทางานบนหนงหนวยประมวลผล
จากภาพท 4.19 แสดงใหเหนวาในทกรอบการทางาน การใชสตรมเพยงอยางเดยวใหประสทธภาพทดทสดโดยจะเหนไดชดในการทางานทจานวนรอบนอย ๆ และประสทธภาพการทางานแบบไมใชหนวยความจารวมจะมประสทธภาพทใกลเคยงกนในรอบการทางานทมาก เนองจากในการทางานทจานวนมาก ประโยชนของการใชสตรมจะคดเปนเพยงสวนนอยเมอเทยบกบเวลาทใชเรยก kernel
0
10
20
30
40
50
60
70
80
1 10 100 1000
spee
dup
iterations
single GPU
single GPU,non-shared
single GPU,shared
single GPU,stream
single GPU,shared,stream
53
เปรยบเทยบประสทธภาพระหวางการใชหนวยประมวลผลกราฟกจานวนหนงและสองหนวย
ในการทดลองนเลอกเปรยบเทยบประสทธภาพการทางานโดยไมใชหนวยความจารวมและสตรม แตใชจานวนหนวยประมวลผลทเพมขน เปรยบเทยบกนระหวางการใชหนวยประมวลผลกราฟกหนงและสองหนวย ทางานบนขนาดบลอกทเทากนคอ (8,16) จานวนรอบท 1, 10, 100 และ 1,000 จะเหนไดวาตามหลกการใชงานในสองหนวยประมวลผลควรมประสทธภาพเปนสองเทาของการใชเพยงหนวยประมวลผลหนงหนวย แตในงานวจยนการแบงขอมลเพอนาเขาไปในหนวยประมวลผลแตละหนวยจะมขนาดมากกวาครงหนงของขนาดขอมลทใชในหนวยประมวลผลหนงหนวยและในการทางานแตละรอบยงตองมการแลกเปลยนการขอมลกนสวนหนงเพอใหหนวยประมวลผลกราฟกแตละหนวยสามารถนาไปคานวณในรอบถดไป
ภาพท 4.20 เปรยบเทยบประสทธภาพการทางานระหวางใชหนงหนวยประมวลผลกราฟกและสองหนวย
25.26117059
61.48887753
70.67441867
71.07394453
33.68224094
94.4520749
131.011881
132.9709767
0 20 40 60 80 100 120 140
1 iteration
10 iterations
100 iterations
1000 iterations
two GPU single GPU
54
ภาพท 4.21 ประสทธภาพทเพมขนระหวางการใชงานหนงและสองหนวยประมวลผลกราฟก
จากภาพท 4.20 แสดงใหเหนถงเวลาและ speedup เปรยบเทยบกนระหวางการใชหนวยประมวลผลกราฟกหนงและสองหนวย และในภาพท 4.21 แสดงใหเหนถงประสทธภาพทเพมขนเมอเปรยบเทยบการทางานระหวางหนวยประมวลผลหนงและสองหนวยสามารถคานวณ ( ) ดงสมการน
(4.2)
โดยท คอ speedup ทใชในการทางานบนหนวยประมวลผลกราฟกสองหนวย และ คอ speedup ทใชในการทางานบนหนวยประมวลผลกราฟกหนงหนวย
จะเหนไดวาประสทธภาพจะเรมตนท ประมาณ 1.4 ในการทางาน 1 รอบเนองจากใน 1 รอบการทางานเวลาทใชในการคดลอกขอมลและเวลาทเรยก kernel มอตราสวนพอ ๆ กน แตเมอจานวนรอบเพมมากขน เวลาทใชในการคดลอกขอมลจะมผลนอยลงเมอเทยบกบเวลาในการทางานทงหมด และมประสทธภาพสงสดอยทประมาณ 1.8 เนองจาก ในการทางานบนสองหนวยประมวลผลจะตองเสยเวลาในทก ๆ รอบสาหรบการแลกเปลยนขอบของขอมลซงจะแปรผนตรงตามจานวนรอบทเพมขน โดย
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
1 iteration 10 iterations 100 iterations 1000 iterations
performance
performance
55
อตราสวนของการเรยกใชหนวยความจา การแลกเปลยนขอมลขอบในแตละรอบและการทางานในแตละรอบ ดงรปท 4.22
ภาพท 4.22 อตราสวนเวลาระหวางการแลกเปลยนขอมลระหวาง CPU กบ GPU (memcpy), การแลกเปลยนขอมลกนระหวาการด (p2p) และเรยก kernel ทจานวนรอบการทางานท 1, 10, 100 และ 1,000 รอบ
0% 20% 40% 60% 80% 100%
1 iteration
10 iterations
100 iterations
1000 iterations
memcpy
p2p
kernel
56
บทท 5
สรปผลการวจย
ผวจยไดทาการพฒนาอลกอรทมการประมวลแบบขนานบนหนวยประมวลผลกราฟกเพอใชในการสรางแบบจาลองการจบอนภาคแมเหลกอยางออนทมขนาดเลกกวาไมโครเมตรดวยสนามแมเหลกเกรเดยนตสง โดยขนแรกไดทาการศกษาอลกอรทมการประมวลผลแบบลาดบบนหนวยประมวลผลกลาง และนามาพฒนา ปรบปรงใหสามารถประมวลผลแบบขนานบนหนวยประมวลผลกราฟกดวย CUDA ไดและนาผลการคานวณทไดเปรยบเทยบกบผลทไดจากการคานวณแบบลาดบดวยหนวยประมวลผลกลาง ขนตอมาพฒนาอลกอรทมโดยใชองคประกอบของ CUDA คอ หนวยความจารวม สตรม และมการเพมจานวนหนวยประมวลผลกราฟก เพอเพมประสทธภาพ สดทายในการสรางแบบจาลองโดยใช OpenGL ทางานรวมกบ CUDA สรปผลการวจยไดดงน
1. อลกอรทมทใช CUDA พฒนามผลการคานวณทสอดคลองตรงกบผลทไดจากการคานวณแบบลาดบบนหนวยประมวลผลกราฟก และมประสทธภาพทดกวาโดยการใชสองหนวยประมวลผลกราฟกมประสทธภาพทดทสด มคา speedup ประมาณ 130 เมอจานวนรอบการทางานเทากบ 1,000 รอบการ
2. ในการพฒนาดวย CUDA สามารถแยกการเปรยบเทยบการทางานได 2 สวน คอ สวนแรกเปรยบเทยบการทางานบนหนงหนวยประมวลผลกราฟก ดวยเทคนคทตางกน คอ ไมใชหนวยความจารวม ใชหนวยความจารวม ใชสตรมและใชหนวยความจารวมและสตรม ประสทธภาพทดทสดคอ การใชสตรมทจานวนเทรดตอบลอก (8,16) ในทกจานวนรอบการทางานททดสอบ และสวนทสองเปรยบเทยบประสทธภาพการทางานของการใชหนงหนวยประมวลผลกราฟกและสองหนวย โดยการใชสองหนวยประมวลผลมประสทธภาพทดกวาใชการใชหนงหนวยประมวลผลสงสดท ประมาณ 1.8 เนองจากในการใชสองหนวยประมวลผลกราฟกจะตองมการแลกเปลยนขอบของขอมลทแบงไปคานวณในแตละหนวยประมวลผล
57
3. สามารถพฒนาโปรแกรมประยกตแบบจาลองการจบอนภาคขนาดเลกขนาดไมโครเมตร ทมสมบตเปนแมเหลกอยางออนดวยสนามแมเหลกเกรเดยนตสง โดยอยในรปแบบภาพกราฟกเคลอนไหวสองมต จาลองจนถงเวลาทผใชกาหนดได
ขอเสนอแนะ
จากผลการทดลองแสดงใหเหนประสทธภาพทเพมขนของการประมวลแบบขนานบนหนวยประมวลกราฟกดวย นอกจากน ดวย feature ใหมของ CUDA 7.0 เชน ความสามารถในการรองรบมาตรฐาน C++11 ซงสามารถใชไดทง host และ device เปนตน อาจจะมการเพมประสทธภาพตอไปไดอกและดวยขอจากดของ CUDA ทสามารถใชงานไดเฉพาะหนวยประมวลผลกราฟกของ NVIDIA เทานนจงมแนวทางในการพฒนาโดยการใช OpenCL [17] เพอใหสามารถนาไปประมวลผลบนหนวยประมวลผลกราฟกทวไปได
58
รายการอางอง [1] Kelland R. D. (1973). “High gradient magnetic separation applied to mineral
beneficiation.” IEEE Transaction on Magnetics, Vol. 9 No. 3: 307-310.
[2] Arellano M., Zambrana G. (1978). “High gradient magnetic separation applied to tin
minerals.” IEEE Transaction on Magnetics, Vol. 14 No. 5,: 488-490.
[3] Kelland D. (1982). “A review of HGMS methods of coal cleaning.” IEEE Transaction
on Magnetics, Vol. 18 No. 3: 841-846.
[4] Kelland D. R., Lai-Fook M., and others. (1988). “HGMS coal desulfurization with
microwave magnetization enchancement.” IEEE Transaction on Magnetics, Vol. 24 No. 6:
2434-2436.
[5] Han K. H. and Frazier B. (2005). “Diamagnetic capture mode magnetophoretic
microseparator for blood cells. “ Journal of Microelectromechanical System, Vol. 14: 1422-
1431.
[6] Han K. H. and Frazier B. (2006). “Paramagnetic capture mode magnetophoretic
microseparator for high efficiency blood cells separations.” Lab on a Chip, Vol. 6: 265-273.
[7] Shigehiro N. and Shin-ichi T. (2006). “Superconducting high gradient magnetic separation
for purification of wastewater from paper factory.” IEEE Transactions on Applied
Superconductivity, Vol. 16: 1142-1145.
[8] Jeonghun N., Hui H., Hyunjung L., and others. (2013). “Magnetic separation of malaria-
infected red blood cells in various developmental stages.” Analytical Chemistry. Vol. 85, No.
15: 7316-7323.
[9] Takayasu M., Gerber R. and Friedlaender F. J. (1983). “Magnetic separation of submicron
particles.” IEEE Transaction on Magnetics, Vol. 19 No. 5: 2112-2114.
59
[10] Gerber R., Takayasu M. and Friedlaender F. J. (1983). “Generalization of HGMS theory:
the capture of ultra-fine particles.” IEEE Transaction on Magnetics, Vol. 19 No. 5: 2115-
2117.
[11] Davies L. P. and Gerber R. (1990). “2-D simulation of ultra-fine particle capture by
single-wire magnetic collector.” IEEE Transaction on Magnetics, Vol. 26 No. 5: 1867-1869.
[12] David L. (2008). “CUDA: Scalable parallel programming for high-performance Scientific
computing.” Proceeding of the 5th IEEE International Symposium on Biomedical Imaging:
from nano to macro, May 14-17.
[13] Hournkumnuard K. and Chantrapornchai C. (2011). “Parallel simulation of concentration
dynamics of nano-particles in high gradient magnetic separation.” Simulation Modelling
Practice and Theory, Vol. 19, No. 2: 847-871.
[14] Zhiyi Yang, Yating Zhu and Yong Pu. (2008). “Parallel Image Processing Based on
CUDA.”
International Conference on Computer Science and Software Engineering, December 12-14.
[15] N.P. Karunadasa and D.N. Ranasinghe. (2009). “Accelerating High Performance
Application with CUDA and MPI.” International Conference on Industrial and Information
Systems, December 28-31.
[16] Chao-Tung Yang, Chih-Lin Huang and Cheng-Fang Lin. (2011). “Hybrid CUDA
OpenMP and MPI parallel programming on multicore GPU cluster”, Computer Physics
Communications, 182: 266-269.
[17] Ryuichi Sakamoto† , Mikiko Sato† and others. (2012). “An OpenCL Runtime Library for
Embedded Multi-Core Accelerator.” IEEE International Conference on Embedded and Real-
Time Computing Systems and Applications, August 12-19.
61
ภาคผนวก
61
ภาคผนวก ก
คมอการใชโปรแกรมประยกตแบบจาลองของกระบวนการจบอนภาคแมเหลกอยางออนทมขนาดเลกกวาไมโครเมตรดวยสนามแมเหลกเกรเดยนตสง
62
คมอการใชโปรแกรมประยกตแบบจาลองของกระบวนการจบอนภาคแมเหลกอยางออนทมขนาดเลกกวาไมโครเมตรดวยสนามแมเหลกเกรเดยนตสง
การใชงานแบบจาลองสามารถดแนวโนมการจบอนภาคแมเหลกอยางออน สามารถเปลยนสารทสนใจได โดยการเรยกใชงานโปรแกรมประยกต
ขนตอนการปรบคาพารามเตอร เมอผใชงานเรยกโปรแกรมประยกต จะพบหนาตางหนาแรกซงสามารถปรบคาพารามเตอรไดดงน
อนภาคแมเหลกอยางออนทเจอปนใจนา (effective magnetic susceptibility)
รศมของอนภาคแมเหลกอยางออน (radius of magnetic particles)
รศมของเสนใยตวจบ (radius of magnetic collector)
สภาพแมเหลกอมตวของเสนใยตวจบ (Magnetization of the collector)
สนามแมเหลกสมาเสมอภายนอก (Magnitude of applied uniform background magnetic
field)
เวลาสดทายของการจาลอง (Time)
โดยสามารถกด “OK” เพอทาการสรางจาลองตามพารามเตอรทผใชงานเลอกหรอกด “cancel” เพอออกจากโปรแกรม ตามภาพท 37 และแบบจาลองทไดดงภาพท 38 โดยทางมมบนขวามอของหนาจอคอเวลาทเปลยนไปในหนวยวนาท
63
ภาพท ผ1 หนาตางสาหรบปรบพารามเตอรกอนทาการสรางแบบจาลอง
ภาพท ผ2 หนาตางแบบจาลอง
65
ประวตผวจย ชอ – สกล นายปราชญ ชยศร Mr. Prach Chaisiri วน เดอน ปเกด วนศกรท 25 ธนวาคม พ.ศ. 2530 ทอยปจจบน 299/2 หม 5 ตาบลบางละมง อาเภอบางละมง จงหวดชลบร 20150 ประวตการศกษา ระดบประถมศกษา โรงเรยนมารวทย จงหวดชลบร ระดบมธยมศกษา โรงเรยนสาธต “พบลบาเพญ” มหาวทยาลยบรพา ระดบอดมศกษา มหาวทยาลยศลปากร วฒการศกษาวทยาศาสตรบณฑต (เกยรตนยมอนดบ 2) สาชาวทยาการคอมพวเตอร ปจจบน ศกษาตอระดบปรญญาวทยาศาสตรมหาบณฑต สาขาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ บณฑตวทยาลย มหาวทยาลยศลปากร