2557 ิทยาลัิลปากรยศ...the parallel simulation is implemented on gpu with...

78
การจําลองและการแสดงผลแบบขนานบนจีพียูของกระบวนการกรองอนุภาคแม่เหล็กอย่างอ่อนขนาด ไมโครเมตรด้วยสนามแม่เหล็ก โดย นายปราชญ์ ชัยศิริ วิทยานิพนธ์นีÊเป็ นส่วนหนึÉงของการศึกษาตามหลักสูตรปริญญาวิทยาศาสตรมหาบัณฑิต สาขาวิชาวิทยาการคอมพิวเตอร์และสารสนเทศ ภาควิชาคอมพิวเตอร์ บัณฑิตวิทยาลัย มหาวิทยาลัยศิลปากร ปีการศึกษา 2557 ลิขสิทธิ Íของบัณฑิตวิทยาลัย มหาวิทยาลัยศิลปากร

Upload: others

Post on 24-Mar-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

การจาลองและการแสดงผลแบบขนานบนจพยของกระบวนการกรองอนภาคแมเหลกอยางออนขนาด

ไมโครเมตรดวยสนามแมเหลก

โดย นายปราชญ ชยศร

วทยานพนธนเปนสวนหนงของการศกษาตามหลกสตรปรญญาวทยาศาสตรมหาบณฑต สาขาวชาวทยาการคอมพวเตอรและสารสนเทศ

ภาควชาคอมพวเตอร บณฑตวทยาลย มหาวทยาลยศลปากร

ปการศกษา 2557 ลขสทธของบณฑตวทยาลย มหาวทยาลยศลปากร

Page 2: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

การจาลองและการแสดงผลแบบขนานบนจพยของกระบวนการกรองอนภาคแมเหลก อยางออนขนาดไมโครเมตรดวยสนามแมเหลก

โดย นายปราชญ ชยศร

วทยานพนธนเปนสวนหนงของการศกษาตามหลกสตรปรญญาวทยาศาสตรมหาบณฑต สาขาวชาวทยาการคอมพวเตอรและสารสนเทศ

ภาควชาคอมพวเตอร บณฑตวทยาลย มหาวทยาลยศลปากร

ปการศกษา 2557 ลขสทธของบณฑตวทยาลย มหาวทยาลยศลปากร

Page 3: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 4: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

บณฑตวทยาลย มหาวทยาลยศลปากร อนมตใหวทยานพนธเรอง “ การจาลองและการแสดงผลแบบขนานบนจพยของกระบวนการกรองอนภาคแมเหลกอยางออนขนาดไมโครเมตรดวยสนามแมเหลก ” เสนอโดย นายปราชญ ชยศร เปนสวนหนงของการศกษาตามหลกสตรปรญญาวทยาศาสตรมหาบณฑต สาขาวชาวทยาการคอมพวเตอรและสารสนเทศ

……........................................................... (รองศาสตราจารย ดร.ปานใจ ธารทศนวงศ)

คณบดบณฑตวทยาลย วนท..........เดอน.................... พ.ศ...........

อาจารยทปรกษาวทยานพนธ 1. รองศาสตราจารย ดร.จนทนา จนทราพรชย 2. อาจารย ดร.กนก หวลกาเนด คณะกรรมการตรวจสอบวทยานพนธ .................................................... ประธานกรรมการ (อาจารย ดร.ทศนวรรณ ศนยกลาง) ............/......................../.............. .................................................... กรรมการ .................................................... กรรมการ (ดร.ศรเทพ วรรณรตน ) (อาจารย ดร.ภญโญ แทประสาทสทธ) ............/......................../.............. ............/......................../.............. .................................................... กรรมการ .................................................... กรรมการ (รองศาสตราจารย ดร.จนทนา จนทราพรชย) (อาจารย ดร.กนก หวลกาเนด) ............/......................../.............. ............/......................../..............

Page 5: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

53314207 : สาขาวชาวทยาการคอมพวเตอรและสารสนเทศ

คาสาคญ : การกรองสนามแมเหลก/การจาลองแบบขนาน/คดา ปราชญ ชยศร : การจาลองและการแสดงผลแบบขนานบนจพยของกระบวนการกรองอนภาคแมเหลกอยางออนขนาดไมโครเมตรดวยสนามแมเหลก. อาจารยทปรกษาวทยานพนธ : รศ.ดร.จนทนา จนทราพรชย และ อ.ดร.กนก หวลกาเนด. 60 หนา. งานวจยนเปนการพฒนาระบบจาลองและแสดงภาพแบบขนานของกระบวนการแยกอนภาคแมเหลกอยางออนทมขนาดเลกกวาระดบไมโครเมตรมาก ๆ ในสนามแมเหลกเกรเดยนทสง แบบจาลองทางคณตศาสตรของกระบวนการแยกอนภาคถกจดตงบนพนฐานของกฎการอนรกษมวลโดยพจารณาผลกระทบจากแรงแมเหลกและการฟงทมตอกระบวนการขนสงอนภาค พลวตของกระบวนการขนสงอนภาคถกอธบายเชงสถตในรปแบบของความเขมขนอนภาคภายในโดเมนทสนใจ โดยการแกสมการการขนสงอนภาคดวยระเบยบวธผลตางสบเนองจะสามารถทานายรปแบบการกระจายคาความเขมขนอนภาคภายในโดเมนทเวลาตาง ๆ ได ในการพฒนาระบบจาลองและแสดงภาพแบบขนานบนหนวยประมวลผลกราฟกดวย CUDA โดยทาแปลงอลกอรทมใหทางานแบบขนานสาหรบสวนคานวณความเขมขนในโดเมนทกาหนด จากนนไดปรบปรงใหมการใช stream การใชหนวยความจารวม การเพมจานวนหนวยประมวลผลกราฟก เพอใหไดประสทธภาพทสงขน จากการทดสอบประสทธภาพพบวาอลกอรธมทปรบปรงน ทางานไดเรวขนสงสดทประมาณ 130 เทาเมอเปรยบเทยบกบการประมวลผลดวยหนวยประมวลผลกลางแบบลาดบ ดวยการใชจพยสองตว และพบวาการใชขนาดของบลอก (8,16)

ใหเวลาทดทสดสาหรบการทดสอบบนจพยรน GeForce GTX แบบจาลองมระบบแสดงภาพระหวางการทางานโดยใชการทางานรวมกนระหวาง CUDA และ OpenGL ภาควชาคอมพวเตอร บณฑตวทยาลย มหาวทยาลยศลปากร

ลายมอชอนกศกษา........................................ ปการศกษา 2557

ลายมอชออาจารยทปรกษาวทยานพนธ 1. ........................... 2. .............................

Page 6: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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. ...........................

Page 7: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

กตตกรรมประกาศ

วทยานพนธนสาเรจลลวงไปไดดวยดเนองจากไดโอกาส ความร คาแนะนา คาปรกษารวมถงความอนเคราะหในเครองมอทใชในการทดลอง ผจดทาจงขอขอบพระคณ รองศาสตราจารย ดร.จนทนา จนทราพรชย และ อาจารย ดร.กนก หวลกาเนด ซงเปนอาจารยทปรกษา ผชวยศาสตราจารย ดร.ภชงค อทโยภาส สาหรบขอคดและคาแนะนาเพอเปนแนวทางในการวจยและการดาเนนชวต และพนทในการทาวจยภายในหองปฏบตการของ HPCNC ภาควชาวศวกรรมคอมพวเตอร มหาวทยาลยเกษตรศาสตร

ขอขอบพระคณ อาจารย ดร.ทศนวรรณ ศนยกลาง อาจารย ดร.ภญโญ แทประสาทสทธ และ ดร.ศรเทพ วรรณรตน ทสละเวลาอนมาคามาตรวจสอบรวมถงใหคาแนะนาในการจดทาวทยานพนธฉบบน

และสดทายนขอขอบพระคณครอบครว รวมถงทานผมพระคณทไมไดกลาวชอในทน ทชวยประสทธประสาทวชาความรของผจดทา

Page 8: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

สารบญ

หนา บทคดยอภาษาไทย ............................................................................................................................... ง บทคดยอภาษาองกฤษ .......................................................................................................................... จ กตตกรรมประกาศ ................................................................................................................................ ฉ สารบญตาราง ....................................................................................................................................... ฌ สารบญภาพ .......................................................................................................................................... ญ บทท 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

Page 9: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

บทท หนา

การสรางแบบจาลอง .......................................................................................................... 33 สรปผลการทดลองและจดทารายงานวทยานพนธ ............................................................. 35 4 ผลการทดลอง .............................................................................................................................. 36 การประเมนประสทธภาพ ................................................................................................. 38 การประมวลผลบนหนวยประมวลผลกลางแบบลาดบ ...................................................... 38 การวดประสทธภาพขนาดของบลอกทเหมาะสม .............................................................. 40 เปรยบเทยบประสทธภาพระหวางการใชหนวยความจารวมและไมใชหนวยความจารวม 48 เปรยบเทยบประสทธภาพระหวางการใชสตรมและไมใชสตรม ....................................... 50

เปรยบเทยบประสทธภาพระหวางการใชหนวยความจารวมกบสตรมและไมใชหนวยความ จารวมกบสตรม……………………………………………………………………. 51 เปรยบเทยบประสทธภาพการประมวลบนหนวยประมวลผลกราฟก…………………… 52 เปรยบเทยบประสทธภาพระหวางการใชหนวยประมวลผลกราฟกจานวนหนงและสอง หนวย………………………………………………………………...……………. 53

5 สรปผลการวจย .......................................................................................................................... 56 ขอเสนอแนะ ...................................................................................................................... 57 รายการอางอง ....................................................................................................................................... 58 ภาคผนวก ............................................................................................................................................. 60 ภาคผนวก ก .......................................................................................................................... 61 ประวตผวจย ......................................................................................................................................... 64

Page 10: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

สารบญตาราง

ตารางท หนา 4.1 เวลาของการประมวลบนหนวยประมวลผลกลางแบบลาดบ ............................................... 39 4.2 แสดงถงเวลาเฉลยใชจานวนเทรดตอบลอก (block size) ทแตกตางกนทงหมด 9 รปแบบ ประมวลผลบนหนวยประมวลผลกราฟกหนงหนวย ทาการทดลองทจานวนรอบแตกตาง กน……………………………………………………………………………………… 40

Page 11: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

สารบญภาพ ภาพท หนา 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

Page 12: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

ภาพท หนา

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

Page 13: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

ภาพท หนา

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

Page 14: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

1

บทท 1

บทนา

แบบจาลองทางวทยาศาสตรเปนเครองมอทชวยใหนกวทยาศาสตรสามารถอธบายปรากฏการณหรอกระบวนการทไมไดทาการทดลองจรง และในกระบวนคานวณแบบจาลองทางวทยาศาสตรดวยคอมพวเตอรสวนใหญตองอาศยการประมวลผลจากหนวยประมวลผลทมประสทธภาพ เนองจากอาจจะตองใชเวลานานในการคานวณ ดงนนเทคโนโลยการประมวลผลแบบขนานจะชวยทาใหการคานวณผลจากแบบจาลองเรวขน การใชหนวยประมวลผลกราฟกกเปนวธหนงในการประมวลผลแบบขนาน

ความเปนมาและความสาคญของปญหา

เทคนคการใชสนามแมเหลกเกรเดยนทสงในการแยกหรอกรองอนภาคออกจากตวกลางของไหล (High Gradient Magnetic Separation : HGMS) ไดถกคดคนขนมาเพอเพมประสทธภาพการแยกอนภาคทมสมบตแมเหลกอยางออนและมขนาดเลกกวาระดบไมโครเมตรมาก ๆ ออกจากตวกลางของไหล เรมแรกเทคนคนถกคดคนขนมาเพอใชในอตสาหกรรมเหมองแร [1-4] ภายหลงไดมนกวจยและวศวกรนาเทคนคนไปประยกตใชกบงานสาขาตาง ๆ ไดแก การแยกประเภทเซลลเมดเลอดในตวอยางเลอดปรมาณนอย ๆ [5-6], การแยกอนภาคของเสยจากนาทงของโรงงานอตสาหกรรม [7] และในชวงไมกสบปทผานมาน เทคนค HGMS ไดถกนาไปประยกตใชในงานวจยทางดานเทคโนโลยชวภาพ เชนการคดแยกเมดเลอดแดงทตดเชอมาลาเรยออกจากตวอยางเลอด [8] ปรมาณทางกายภาพทสงผลกระทบสาคญกบการทางานของเทคนค HGMS ไดแก แรงแมเหลก การไหลของตวกลางของไหล ขนาดของอนภาค เปนตน แรงแมเหลกแปรผนตรงกบปรมาตรของอนภาคยงอนภาคมขนาดเลกปรมาตรยงนอยและแรงแมเหลกจะยงออน ดงนนถาอตราเรวการไหลของตวกลางของไหลไมนอยเพยงพอ โอกาสทอนภาคตวหนง ๆ จะถกแรงแมเหลกกระทาใหแยกออกมาจากของไหลจะนอยลงอยางมาก นอกจากนสาหรบอนภาคทมขนาดเลกกวาระดบไมโครเมตรมาก ๆ การเคลอนทของอนภาคจะมรปแบบของกระบวนการฟงปรากฏอย [9-11] กระบวนการฟงเปนกระบวนการแบบสมทเกดจากการชนกนระหวางอนภาคกบโมเลกลของตวกลางของไหลทาใหอนภาคกระเดนกระดอนไปมาและเสนทางการเคลอนทของอนภาคมลกษณะแบบสม ยงอนภาคมขนาดเลกกวาไมโครเมตรมาก ๆ ผลของกระบวนการฟงจะยงสาคญมากขน และการตดตามการเคลอนทชองอนภาคแตละตวจะทาไดยากเนองจากจานวนอนภาคใน

Page 15: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

2

ระหวางกระบวนการ HGMS มมาก ดงนนวธการทเหมาะสมกวาคอวธการเชงสถต โดยศกษาพลวตความเขมขนของอนภาคในบรเวณทสนใจดวยการสรางแบบจาลองทางคณตศาสตรของกระบวนการขนสงอนภาคภายในโดเมนทสนใจ จากนนทาการจาลองพลวตของการขนสงอนภาคดวยการคานวณเชงตวเลขจากระเบยบวธตาง ๆ ไดแก ระเบยบวธผลตางสบเนอง ระเบยบวธไฟไนทเอลเมนท ระเบยบวธไฟไนทโวลยม ซงแตละระเบยบวธจาเปนตองแบงปรมาตรหรอพนทในบรเวณทสนใจออกเปนสวนเลก ๆ จานวนมากแลวกาหนดสมการทอธบายพลวตรความเขมขนอนภาคภายในสวนเลก ๆ นนบนพนฐานของกฎการอนรกษมวล จากนนใชระเบยบวธเชงตวเลขและโปรแกรมคอมพวเตอรแกสมการเพอใหทราบคาเชงตวเลขของความเขมขนอนภาค ณ ตาแหนงตาง ๆ ในบรเวณทสนใจ การแบงปรมาตรหรอพนทของบรเวณทสนใจออกเปนสวนเลก ๆ จานวนมากจะทาใหตองใชหนวยความจาและเวลาทใชในการคานวณมากไปดวย การพฒนาอลกอรทมการประมวลผลแบบขนานจะชวยเพมประสทธภาพในการประมวลผลใหไดผลการจาลองทมความถกตองภายในชวงเวลาไมนานได

การประมวลผลดวยหนวยประมวลผลกราฟกเปนทางเลอกหนงสาหรบการประมวลผลแบบขนาน หนวยประมวลผลกราฟกในปจจบนมหลากหลาย และราคาไมแพง ในงานวจยนอาศยหนวยประมวลผลกราฟกของ NVIDIA และอาศย CUDA เปนแพลตฟอรมในการทางานเพอใชในการโปรแกรมแบบขนาน [12]

วตถประสงคของงานวจย

เพอศกษาและพฒนาการสรางแบบจาลองทางคอมพวเตอรของกระบวนการใชสนามแมเหลกเกรเดยนทสงจบอนภาคแมเหลกอยางออนทมขนาดเลกวาระดบไมโครเมตร โดยใชการประมวลผลแบบขนานบน CUDA

ขอบเขตงานวจย

พฒนาแบบจาลองการคานวณแบบขนานโดยเขยนโปรแกรมและใชแพลตฟอรม CUDA ใชรปแบบการประมวลผลทแตกตางกน 5 รปแบบ ไดแก การประมวลผลแบบขนานบนหนงหนวยประมวลผลกราฟก, การประมวลผลแบบขนานบนหนงหนวยประมวลผลผลกราฟกโดยใชหนวยความจารวม การประมวลผลแบบขนานบนหนงหนวยประมวลผลผลกราฟกโดยใช

Page 16: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

3

สตรม การประมวลผลแบบขนานบนหนงหนวยประมวลผลผลกราฟกโดยใชหนวยความจารวมและสตรม และการประมวลผลแบบขนานบนสองหนวยประมวลผลผลกราฟก โดยในแตละรปแบบหลกม รปแบบยอย แตกตางกนโดยจานวนเทรดตอบลอกทตางกนดงน (8,8), (8,16), (8,32), (16,8), (16,16), (16,32), (32,8), (32,16) และ (32,32)

ทดสอบความถกตองของการคานวณโดยการเปรยบเทยบกบผลการจาลองทไดจากการทดลองจบอนภาคดวยสนามแมเหลกเกรเดยนทสงทไดมผศกษามากอนแลว

วดและเปรยบเทยบประสทธภาพของทง 5 รปแบบการคานวณหลกและ รปแบบยอย เพอหารปแบบทเหมาะสมสาหรบนาไปสรางระบบแสดงผล

พฒนาโมดลแสดงผลเชอมตอการคานวณ แสดงผลในรปภาพกราฟกเคลอนไหว มต

ประโยชนทคาดวาจะไดรบ

ไดแบบจาลองคอมพวเตอรแบบขนานของกระบวนการจบอนภาคแมเหลกอยางออนทมขนาดเลกกวาไมโครเมตรดวยสนามแมเหลกเกรเดยนทสง รวมทงระบบแสดงผลการจาลอง

ไดความรในการพฒนาโปรแกรมแบบ CUDA

Page 17: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

4

บทท

เอกสารและงานวจยทเกยวของ

ในบทน จะอธบายทฤษฎของกระบวนการจบอนภาคแมเหลกอยางออนขนาดเลกกวาไมโครเมตรดวยสนามแมเหลกเกรเดยนทสงในของไหลสถตทไมมการเคลอนท สถาปตยกรรมของหนวยประมวลผลกราฟกและแพลตฟอรม CUDA และการทบทวนวรรณกรรมของงานวจยทเกยวของ

ทฤษฎการจบอนภาคแมเหลกอยางออนขนาดเลกกวาไมโครเมตรดวยสนามแมเหลก เกรเดยนทสงในของไหลสถต เนองจากกระบวนการฟงมอทธพลสาคญตอพลวตรของความเขมขนอนภาคทมขนาดเลกกวาระดบไมโครเมตร ในการแบบจาลองกระบวนการ จะใชทฤษฎทางฟสกสสถตมาอธบายพลวตรของความเขมขนอนภาค โดยใชสมการความตอเนองของคาความเขมขนซงมพนฐานอยบนกฎการอนรกษมวล [11] และมรปแบบดงน

2

mC D C CuFt

2C C (2.1)

โดย D คอคาสมประสทธการฟงของอนภาคในของไหล คอคาความสามารถการเคลอน (mobility)

ของอนภาคในของไหล Bk คอคาคงทของ Boltzmann และ T คออณหภมสมบรณในหนวยเคลวน ในการจาลองจะแบงปรมาตรหรอพนททสนใจออกเปนสวนยอยขนาดเลก ๆ จานวนมาก จากนนกาหนดสมการความตอเนองนใหกบทก ๆ สวนยอยเลก ๆ ทาการกาหนดคาความเขมขนเรมตนและเงอนไขคาความเขมขนบนขอบเขตตาง ๆ ของปรมาตรหรอพนททสนใจ ในวทยานพนธนจะใชระเบยบวธผลตางสบเนองหาผลเฉลยเชงตวเลขของสมการความตอเนองทกาหนดใหกบแตละสวนยอยเลก ๆ ซงผลทไดเปนคาเชงตวเลขของความเขมขนอนภาคในแตละสวนยอยเลก ๆ ทเวลาตาง ๆ ได ทาใหเหนถงพลวตรของการขนสงอนภาคในปรมาตรหรอพนททสนใจ

Page 18: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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 ( . )

Page 19: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 20: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

( . )

Page 21: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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 และ ดงแสดงในภาพท .

Page 22: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 23: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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 คา

Page 24: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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)

Page 25: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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)

Page 26: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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 คาความเขมขนทเวลาเรมตนอาจมคาเปน

Page 27: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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. กาหนดพารามเตอรชองการจาลอง

Page 28: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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)

Page 29: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

16

(a)

(b)

ภาพท 2.6 การระบตาแหนงของสวนยอยพเศษในแถวหนง ๆ ของอะเรยความเขมขน (a) ในกรณทยงไมเกดความเขมขนอมตว และ (b) ในกรณทเกดความเขมขนอมตวแลว

5.2 คานวณคาความเขมขนทเวลาใหมในทก ๆ สวนยอยในแตละแถว

สาหรบแถว j หนง ๆ คานวณคาความเขมขนทเวลา normalized ใหมในทก ๆ ชองของอะเรยความเขมขน new_C ทตามทศทางในภาพท 2.7

ทศทางการคานวณความเขมขนคาใหมในสวนยอยของแตละแถว

ภาพท 2.7 ลกษณะทศทางการคานวณความเขมขนคาใหมในแตละสวนยอยในแตละแถว

Impervious

surface

ขนท

5.2.1 ขนท . .

ขนท . .

Page 30: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

โดยการทาตามกระบวนการจาลองทอธบายมาน ทาใหสามารถหาลกษณะการกระจายคาความเขมขนของอนภาคในโดเมน ณ เวลาตาง ๆ ไดซงจะทาใหสามารถประเมนประสทธผลในการใชสนามแมเหลกเกรเดยนทสงจบอนภาคแมเหลกอยางออนขนาดเลกกวาไมโครเมตรทเจอปนอยในตวกลางของไหลได

การประมวลผลแบบขนาน

เปนการประมวลผลโดนทางานหลาย ๆ อยางพรอมกน โดยอาจจะเครองคอมพวเตอรตงแต เครองขนไป หรอเครองคอมพวเตอรทมจานวนตงแต แกนขนไป โดยการแบงกระบวนการคานวณและกระจายงานคานวณไปยงแตละเครองหรอแตละหนวย การประมวลผลแบบขนานถกนามาใชในงานดานตาง ๆ เชน งานดานการพยากรณอากาศ การวเคราะหหารไหลของของเหลว เปนตน ถงแมในงานดงกลาวจะสามารถใชคอมพวเตอรตงโตะไดแตอาจจะใชเวลานานมากเกน จง

Page 31: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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) คอสถาปตยกรรมทมหลายหนวยประมวลผลโดยแตละหนวยประมวลผลทางานในชดคาสงและขอมลของตวเอง

Page 32: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 33: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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 จะทาการคดลอก

Page 34: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 35: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

22

สาหรบหนวยความจาของ CUDA จะมหลายประเภทเพอใหเหมาะสมกบการใชงาน ดงน

หนวยความจาโกลบอล (global memory) คอหนวยความจาหลกของหนวยประมวลผลกราฟก

ขนาดใหญทสด ทกเทรดสามารถเขาถงได แตมขอเสยคอใชเวลาในการเขาถงหนวยความจาชนดนมาก

หนวยความจาคาคงท (constant memory) คอหนวยความจาทใชในการเกบคาคงทตางๆ แมวาหนวยความจาชนดนจะอยทเดยวกบหนวยความจาหลกแตมแคช (cache) เพอชวยเพมและมขนาดเลก ประสทธภาพในการเขาถง

หนวยความจาเทกเจอร (texture memory) คอหนวยความจาใชสาหรบอานเพยงอยางเดยว เปนหนวยความจาแบบแคชสาหรบการเขาถงรปแบบ 2 มต

หนวยความจาโลคอล (local memory) คอหนวยความจาทใชในแตละเทรดโดยเปนสวนทเกนมาจากหนวยความจารจสเตอร (register memory) ในแตละเทรด มความเรวในการเขาถงทตากวา แตมขนาดทใหญกวาเมอเทยบกบหนวยความจารจสเตอร

หนวยความจารจสเตอร (register memory) คอหนวยความจาทใชในแตละเทรด มความเรวในการเขาถงขอมลทสงแตมขนาดเลก

หนวยความจารวม (shared memory) คอหนวยความจาทเทรดทอยในบลอกเดยวกนใชรวมกนได มความเรวในการเขานอยกวาการใชหนวยความจาหลกแตจะตองเสยเวลาในการสรางหนวยความจาประเภทนกอน

Page 36: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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) คอลาดบของตวดาเนนการทเขาทางานบนหนวยประมวลผล โดยปกตถาเราไมไดมการกาหนดการใชงานของสตรม การทางานทงหมดจะถกทางานอยบนสตรมเดยวกนตงแตการนาเขาขอมล การประมวลผล รวมถงการนาขอมลออก แตเราสามารถใชสตรมเขามาชวย โดยสรางหลายสตรมและแบงการทางานหลายสตรมใหพรอมกนเพอลดระยะเวลาในการทางานทงหมดลง ทงนขนอยกบความอสระของขอมลและโครงสรางโปรแกรม

Page 37: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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 กมไลบราลเพมเตม

Page 38: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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) เขามาทางาน

Page 39: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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 กบ

Page 40: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

27

OpenMP และ CUDA กบ MPI เพอวดประสทธภาพการทางานบนคลสเตอรคอมพวเตอร ในการประมวลผลในหนวยประมวลผลกราฟกในระดบเทรด มการใชหนวยความจารวมกนเขามารวม ในการทดลองผวจยไดใช ขนตอนวธการและปญหาทมขนาดตางกนคอ Matrix multiplications,

MD5 และ Bubble sort ผลการทดลองแสดงใหเหนวา การทางานของ Matrix multiplications ดวยการประมวลรวมมประสทธภาพทดกวา การทางานของ MD5 ทางานดวย CUDA และ OpenMP

ผลลพธคอ CUDA ใชเวลานอยกวาในการประมวลผลและในการทางานของ Bubble sort โดยใชเทคนคการประมวลรวมทแตกตางกน ผลลพธคอ เทคนคการประมวลผลรวม CUDA กบ OpenMP

มประสทธภาพทดกวา

Page 41: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 42: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

28

ขนตอนการทดลอง

ในงานวจยนจะทาการพฒนาอลกอรทมแบบขนานโดยอาศยแพลตฟอรม CUDA มขนตอนการทดลองโดยการทาการทดสอบกบรปแบบการคานวณดวย CUDA ทแตกตางเพอหารปแบบทเหมาะสมนาไปสรางระบบแสดงผล

จากสมการความตอเนองท ( . ) ซงใชในการคานวณหาคาความเขมขนภายในแตละสวนยอยของโดเมน ณ เวลาหนง ๆ ดงในภาพท 3.1 โดยในการคานวณ คาความเขมขนของแตละสวนยอยจะถกเกบขอมลเพอใชในการคานวณดวยอะเรย มต สาหรบในการคานวณหาความเขมขนของแตละอนภาคตามสมการท ( . ) จะตองใชการคานวณจากจดโดยรอบทง จด ดงในภาพท 3.2

ภาพท 3.1 ความเขมขนของอนภาครอบเสนใยตวจบในโดเมนทถกแบงเปนสวนยอยดวยพกดเชงขว

(a) (b)

ภาพท 3.2 ความสมพนธเพอใชหาความเขมขนภายในสวนยอยโดเมนแบบ (a) ปกตและ (b) พเศษ

Page 43: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

29

จากการศกษาการพฒนาโปรแกรมแบบลาดบทางานบนหนวยประมวลผลกลางเรมตนจากขนตอนการกาหนดคาความเขมขนเรมตนใหกบทกสวนยอยในโดเมน โดยเกบไวในรปแบบอะเรย

2 มต สาหรบขนตอนการคานวณเพอหาความเขมขนของจด ตรงกลางสวนยอยหนง ๆ ทเวลาใด ๆ โดยการใชคาความเขมขนของเวลากอนหนา ทาการคานวณตามจานวนรอบโดยองจากเวลาทตองการดความเขมขน ในการคานวณหาจะตองใชการวนลป 2 ชนเพอใหสามารถเขาถงการคานวณหาความเขมขนในแตละสวนยอยไดจนครบ จากสวนดงกลาวผวจยเหนวาสามารถนามาปรบใหอยในรปการประมวลผลแบบขนานได

ภาพท 3.3 ขนตอนการทางานของโปรแกรมแบบลาดบ

start

Initial

Input

Save

end

Page 44: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

30

ในขนตอนการออกแบบการคานวณ CUDA สาหรบงานวจยน จะมรปแบบขนตอนวธการอยทงหมด 5 รปแบบ ดงน

รปแบบท 1 การประมวลผลโดยใชหนงหนวยประมวลผลกราฟกแบบไมมการใชหนวยความจารวมกน (Single GPU, non-shared memory) โดย 1 เทรดจะคานวณหาความเขมขนของอนภาคใน 1 สวนยอย ลกษณะการทางานจะทาทละบลอก (ตามขนาดของ เทรดตอบลอก) การเรมตนการประมวลผลบนหนวยประมวลผลกราฟกจะตองนาคาความเขมขนทเวลากอนหนาของสวนยอยทงหมดจากหนวยประมวลผลกลางมาเกบไวยง หนวยความจาโกลบอล โดยในการทางานแตละเทรดกจะเขาถงขอมลทอยบนหนวยความจาโกบอลโดยตรง และเมอประมวลผลครบรอบจะทาการคดลอกขอมลกลบไปยงหนวยความจาหลกของหนวยประมวลผลกลาง แตทางผวจยเหนวาการโอนถายขอมลไป – กลบระหวางหนวยประมวลผลกลางและหนวยประมวลผลกราฟกใชเวลานานมาก (เมอเทยบกบการทางานในขนตอนอน ๆ ) ทางผวจยจงปรบการทางานโดยไมโอนถายขอมลไปมาเมอทางานครบรอบ แตจะใชตวชเขามาชวยเพอเปลยนตาแหนงความเขมขนระหวางเวลากอนหนาและเวลาปจจบนสลบกนไปมา เมอทางานจนครบตามจานวนรอบทตองการจงมการโอนถายขอมลจากหนวยความจาของหนวยประมวลผลกราฟกมายงหนวยความจาหลกของหนวยประมวลผลกลาง

ภาพท 3.4 แสดงการทางานแบบไมใชหนวยความจารวม

จากภาพท 3.4 แสดงใหเหนถงการทางานพรอมกนโดยบรเวณสเขยวคอขอมลทอยบนหนวยความจาหลกทงหมด สวนสแดงคอบลอกทแตละเทรดขางในทางานเสมอนพรอมกน เมอบลอกหนงทางานเสรจกจะขยบการทางานไปตามขนาดของบลอกจนครบทงหมดของขอมลคอการทางานหนงรอบ

Page 45: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

31

รปแบบท 2 การประมวลผลโดยใชหนงหนวยประมวลผลกราฟกแบบมการใชหนวยความจารวมกน จากรปแบบท 1 ซงในการคานวณคาความเขมขนของแตละสวนยอยจะตองใชคาความเขมขนของสวนยอยทลอมรอบ 4 สวนยอยซงมการเขาถงขอมลจากหนวยความจาหลกหลายครง ทางผวจยจงนาหนวยความจารวมเขามาเพอเพมความเรวในการเขาถงขอมลของอนภาครอบดาน

ภาพท 3.5 แสดงการทางานแบบใชหนวยความจารวม

จากภาพท 3.5 แสดงใหเหนถงขนาดของหนวยความจารวมทใชในแตละบลอกโดยจะมใหญกวาขนาดของบลอกในแตละดานสองจด เพอใหเหมาะสมกบวธการคานวณ

รปแบบท 3 การประมวลผลบนหนงหนวยประมวลผลโดยใชสตรมเขามาทางานรวมโดยหลกการทางานคอแบงขอมลออกตามจานวนสตรมเนองจากในการคานวณแตละอนภาคมความอสระกนทางดานตวดาเนนการ สาหรบวธการแบงขอมลผวจยเลอกใชวธการแบงขอมลตามแถวแตขอมลทงหมดยงอยในหนวยความจาหลก เรมแบงตงแตการนาขอมลเขาหนวยความจาหลก การคานวณและการนาขอมลออกจากหนวยความจาหลก ทางผวจยหวงวาจะทาใหเกดการทางานรวมกนทาใหลดเวลาในการประมวลผลลงมาไดอก

Page 46: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

32

ภาพท 3.6 แสดงการแบงขอมลเพอทางานโดยใชสตรม

รปแบบท 4 การใชหนงหนวยประมวลผลโดยใชหนวยความจารวมและสตรม เรมตนใชสตรมเขามาแบงสายการทางานของขอมลเพอลดเวลาในการโอนถายขอมลและใชหนวยความจารวมในการคานวณเพอชวยลดเวลาในการเขาถงหนวยความจาโกลบอลของหนวยประมวลผลกราฟก

รปแบบท 5 การนาหนวยประมวลผลกราฟกเขามาใชรวมการทางานอกหนงใบทเหมอนกน โดยการทางานจะแบงขอมลในลกษณะเดยวกบการใชสตรมคอแบงครงตามแถว ทาใหไดขอมลเปนสองชน โดยแตละชนจะมขนาดเพมขน 2 แถวคอขอบบนและขอบลางเพอใชในการคานวณตามวธการ และนาแตละสวนสงไปประมวลผลแยกกนในหนวยความจาแตละใบ หลงจากทประมวลผลเสรจหนงรอบยงไมสามารถทางานในรอบตอไปไดทนท จะตองมการแลกเปลยนขอบของขอมลทงสองชนเพอปรบคาสาหรบใชการคานวณในรอบใหม

Page 47: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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 เชน สรางหนาตางของโปรแกรมประยกต เลอกรปแบบสสาหรบการแสดงผล กาหนดความกวาง – ยาวของหนาตาง เปนตน รวมถงสรางบฟเฟอรเพอเกบคาทใชสาหรบการแสดงผล จากนนทาการเชอมตอกนระหวางตวแปรของ

Page 48: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

34

CUDA และ บฟเฟอรของ OpenGL ทาการเรยกใชงานฟงกชนสาหรบการแสดงผลโดยไปเรยกให

CUDA ทาการประมวลผลใน 1 รอบ และ OpenGL นาคาจากบฟเฟอรมาแสดงผล ทางานจนกวาจะถงเวลาทกาหนด

ภาพท 3.8 แผนผงการทางานรวมกนระหวาง CUDA และ OpenGL ในการสรางแบบจาลอง

ในการแสดงผลจะใชสเพอแสดงคาความเขมขนของแตละอนภาค สาหรบการคานวณหาคาซงเลอกใชโมเดล RGB กาหนดคาของแตละสตามคาความเขมขนของอนภาคทเปลยนไป ตามภาพท 3.9

Page 49: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

35

ภาพท 3.9 ความสมพนธระหวางความเขมขนและคาสในแตละสของโมเดล RGB

สรปผลการทดลองและจดทารายงานวทยานพนธ

เมอไดผลการทดลองทาการวเคราะหและประเมนตามจดประสงคทกาหนดแลว จงจดทารายงานวทยานพนธ

Page 50: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

36

บทท 4

ผลการทดลอง

งานวจยนไดทาการสรางแบบจาลอง โดยใช OpenGL เปนเครองมอในการแสดงผลคาความเขมขนของอนภาคในแตละสวนยอยของโดเมน เขามาทางานรวมกบ CUDA ซงใชในการคานวณหาคาความเขมขนทเวลาตาง ๆ ของภายในสวนยอยของโดเมน แบบจาลองจะอยในรปแบบโปรแกรมประยกตทผใชงานสามารถกาหนดคาตาง ๆ ได เชน เวลาสดทายทตองการจาลอง คาความเขมขนเรมตนของอนภาคภายในโดเมน เปนตน (สาหรบวธการใชงานโปรแกรมประยกตอยในภาคผนวก ก.) สาหรบแบบจาลองทไดอยในภาพกราฟกเคลอนไหว 2 มต

ภาพท 4.1 แบบจาลองคอมพวเตอรแบบขนานการจบอนภาคแมเหลกทมขนาดไมโครเมตรในสนามแมเหลกเกรเดยนทสง

Page 51: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 52: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

38

การประเมนประสทธภาพ

ในการทาการทดลอง ผวจยทาการวดเวลาทใชในการทดลอง หนวยเปนวนาท โดยวดเฉพาะสวนทใชในการประมวลผลบนหนวยประมวลผลกราฟก ในแตละกรณจะทาการทดลองทงหมด 10 รอบ นามาหาคาเฉลยเพอใชเปรยบเทยบตอไป

การประเมนการทางานของแตละวธการจะพจารณาจากคา speedup โดยใชสญลกษณ คานวณจากอตราสวนระหวางเวลาทใชในการคานวณแบบลาดบและเวลาทใชในการคานวณแบบขนาน ดงสมการ

(4.1)

เมอ คอเวลาทใชในการคานวณแบบขนาน และ คอเวลาทใชในการคานวณแบบขนาน

การประมวลผลบนหนวยประมวลผลกลางแบบลาดบ

จากตารางท 4.1 แสดงเวลาททาการทดลองกบขอมลชดเดยวกน ตามพารามเตอรตงตนไดแก การประมวลผลแบบขนานบนหนงหนวยประมวลผลกราฟก, การประมวลผลแบบขนานบนหนงหนวยประมวลผลผลกราฟกโดยใชหนวยความจารวม, การประมวลผลแบบขนานโดยบนหนงหนวยประมวลผลผลกราฟกโดยใชสตรม, การประมวลผลแบบขนานบนหนงหนวยประมวลผลผลกราฟกโดยใชหนวยความจารวมและสตรม และการประมวลผลแบบขนานบนสองหนวยประมวลผลผลกราฟก แตกตางกนทจานวนรอบ ไดแก 1, 10, 100 และ 1,000 รอบตามลาดบ ทาการทดสอบ 10 รอบเพอหาคาเฉลยของเวลา

Page 53: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 54: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 55: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 56: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 57: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 58: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 59: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 60: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 61: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 62: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 63: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 64: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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)

Page 65: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 66: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 67: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 68: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 69: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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

Page 70: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

56

บทท 5

สรปผลการวจย

ผวจยไดทาการพฒนาอลกอรทมการประมวลแบบขนานบนหนวยประมวลผลกราฟกเพอใชในการสรางแบบจาลองการจบอนภาคแมเหลกอยางออนทมขนาดเลกกวาไมโครเมตรดวยสนามแมเหลกเกรเดยนตสง โดยขนแรกไดทาการศกษาอลกอรทมการประมวลผลแบบลาดบบนหนวยประมวลผลกลาง และนามาพฒนา ปรบปรงใหสามารถประมวลผลแบบขนานบนหนวยประมวลผลกราฟกดวย CUDA ไดและนาผลการคานวณทไดเปรยบเทยบกบผลทไดจากการคานวณแบบลาดบดวยหนวยประมวลผลกลาง ขนตอมาพฒนาอลกอรทมโดยใชองคประกอบของ CUDA คอ หนวยความจารวม สตรม และมการเพมจานวนหนวยประมวลผลกราฟก เพอเพมประสทธภาพ สดทายในการสรางแบบจาลองโดยใช OpenGL ทางานรวมกบ CUDA สรปผลการวจยไดดงน

1. อลกอรทมทใช CUDA พฒนามผลการคานวณทสอดคลองตรงกบผลทไดจากการคานวณแบบลาดบบนหนวยประมวลผลกราฟก และมประสทธภาพทดกวาโดยการใชสองหนวยประมวลผลกราฟกมประสทธภาพทดทสด มคา speedup ประมาณ 130 เมอจานวนรอบการทางานเทากบ 1,000 รอบการ

2. ในการพฒนาดวย CUDA สามารถแยกการเปรยบเทยบการทางานได 2 สวน คอ สวนแรกเปรยบเทยบการทางานบนหนงหนวยประมวลผลกราฟก ดวยเทคนคทตางกน คอ ไมใชหนวยความจารวม ใชหนวยความจารวม ใชสตรมและใชหนวยความจารวมและสตรม ประสทธภาพทดทสดคอ การใชสตรมทจานวนเทรดตอบลอก (8,16) ในทกจานวนรอบการทางานททดสอบ และสวนทสองเปรยบเทยบประสทธภาพการทางานของการใชหนงหนวยประมวลผลกราฟกและสองหนวย โดยการใชสองหนวยประมวลผลมประสทธภาพทดกวาใชการใชหนงหนวยประมวลผลสงสดท ประมาณ 1.8 เนองจากในการใชสองหนวยประมวลผลกราฟกจะตองมการแลกเปลยนขอบของขอมลทแบงไปคานวณในแตละหนวยประมวลผล

Page 71: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

57

3. สามารถพฒนาโปรแกรมประยกตแบบจาลองการจบอนภาคขนาดเลกขนาดไมโครเมตร ทมสมบตเปนแมเหลกอยางออนดวยสนามแมเหลกเกรเดยนตสง โดยอยในรปแบบภาพกราฟกเคลอนไหวสองมต จาลองจนถงเวลาทผใชกาหนดได

ขอเสนอแนะ

จากผลการทดลองแสดงใหเหนประสทธภาพทเพมขนของการประมวลแบบขนานบนหนวยประมวลกราฟกดวย นอกจากน ดวย feature ใหมของ CUDA 7.0 เชน ความสามารถในการรองรบมาตรฐาน C++11 ซงสามารถใชไดทง host และ device เปนตน อาจจะมการเพมประสทธภาพตอไปไดอกและดวยขอจากดของ CUDA ทสามารถใชงานไดเฉพาะหนวยประมวลผลกราฟกของ NVIDIA เทานนจงมแนวทางในการพฒนาโดยการใช OpenCL [17] เพอใหสามารถนาไปประมวลผลบนหนวยประมวลผลกราฟกทวไปได

Page 72: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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.

Page 73: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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.

Page 74: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

61

ภาคผนวก

Page 75: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

61

ภาคผนวก ก

คมอการใชโปรแกรมประยกตแบบจาลองของกระบวนการจบอนภาคแมเหลกอยางออนทมขนาดเลกกวาไมโครเมตรดวยสนามแมเหลกเกรเดยนตสง

Page 76: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

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 โดยทางมมบนขวามอของหนาจอคอเวลาทเปลยนไปในหนวยวนาท

Page 77: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

63

ภาพท ผ1 หนาตางสาหรบปรบพารามเตอรกอนทาการสรางแบบจาลอง

ภาพท ผ2 หนาตางแบบจาลอง

Page 78: 2557 ิทยาลัิลปากรยศ...The parallel simulation is implemented on GPU with CUDA. The parallel algorithm for computing the concentration is developed in the

65

ประวตผวจย ชอ – สกล นายปราชญ ชยศร Mr. Prach Chaisiri วน เดอน ปเกด วนศกรท 25 ธนวาคม พ.ศ. 2530 ทอยปจจบน 299/2 หม 5 ตาบลบางละมง อาเภอบางละมง จงหวดชลบร 20150 ประวตการศกษา ระดบประถมศกษา โรงเรยนมารวทย จงหวดชลบร ระดบมธยมศกษา โรงเรยนสาธต “พบลบาเพญ” มหาวทยาลยบรพา ระดบอดมศกษา มหาวทยาลยศลปากร วฒการศกษาวทยาศาสตรบณฑต (เกยรตนยมอนดบ 2) สาชาวทยาการคอมพวเตอร ปจจบน ศกษาตอระดบปรญญาวทยาศาสตรมหาบณฑต สาขาวทยาการคอมพวเตอรและเทคโนโลยสารสนเทศ บณฑตวทยาลย มหาวทยาลยศลปากร