Mais conteúdo relacionado Semelhante a ตัวอย่างโครงงาน (20) ตัวอย่างโครงงาน1. เล็ทมีซี : เครื่องมือเรียนรูเพื่อฝกเขียนโปรแกรมสําหรับเครื่องหลาย
หนวยประมวลผลโดยใชภาษาซี/ซีพลัสพลัส
LET ME C : a Learning Tool providing a Multiprocessor-programming
Environment based on C/C++
โปรแกรมเพื่อสงเสริมการเรียนรู(นักศึกษา)
รายงานฉบับสมบูรณ
เสนอตอ
ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ
สํานักงานพัฒนาวิทยาศาสตรและเทคโนโลยีแหงชาติ
กระทรวงวิทยาศาสตรและเทคโนโลยี
ไดรับทุนอุดหนุนโครงการวิจัย พัฒนาและวิศวกรรม
โครงการแขงขันพัฒนาโปรแกรมคอมพิวเตอรแหงประเทศไทย ครั้งที่ 11
ประจําปงบประมาณ 2552
โดย
นางสาวจตุรดา ดียิ่ง
นางสาวกุสุมา อาดัมภ
ชื่ออาจารยที่ปรึกษาโครงการ นางสาววรวรรณ มะเริงสิทธิ์
สถาบันการศึกษา มหาวิทยาลัยธรรมศาสตร
รหัสโครงการ 11p12c602
2. I
กิตติกรรมประกาศ (Acknowledgement)
โครงการเล็ทมีซี ไดรับทุนสนับสนุนการพัฒนาโครงการจากศูนยเทคโนโลยีอิเล็กทรอนิกสและ
คอมพิวเตอรแหงชาติ สํานักงานพัฒนาวิทยาศาสตรและเทคโนโลยีแหงชาติ กระทรวงวิทยาศาสตรและ
เทคโนโลยี ไดรับทุนอุดหนุนโครงการการแขงขันพัฒนาโปรแกรมคอมพิวเตอรแหงประเทศไทย ครั้งที่ 11
จากศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ สํานักงานพัฒนาวิทยาศาสตรและเทคโนโลยี
แหงชาติ และสํานักงานสงเสริมอุตสาหกรรมซอฟตแวรแหงชาติ พรอมระบุชื่อโครงการที่ไดรับทุนไวดวย
ขอขอบพระคุณอาจารยที่ปรึกษาที่ไดใหคําแนะนํา ขอคิดเห็น และใหความรูตางๆ รวมทั้งให
ความชวยเหลือในดานตางๆ
ขอขอบคุณภาพภาควิชาวิทยาการคอมพิวเตอร คณะวิทยาศาสตรและเทคโนโลยี
มหาวิทยาลัยธรรมศาสตร ที่ใหขอมูล ขาวเกี่ยวกับโครงการโครงการแขงขันพัฒนาโปรแกรมคอมพิวเตอร
แหงประเทศไทย
และขอขอบคุณเพื่อนๆ และผูที่เกี่ยวของทุกๆทานที่ใหคําปรึกษา และใหคําชวยเหลือตลอดการ
ทํางานจนสําเร็จลุลวงไปไดดวยดี
ผูพัฒนาโครงการจึงขอกราบขอบพระคุณมา ณ โอกาสนี้
นางสาวจตุรดา ดียิ่ง
นางสาวกุสุมา อาดัมภ
3. II
บทคัดยอ
นวัตกรรมของสถาปตยกรรมหนวยประมวลผลแบบมัลติคอร เพื่อเพิ่มศักยภาพการประมวลผล
ในภาวะวิกฤติการขาดแคลนพลังงาน ขอจํากัดของวิกฤตพลังงานเชน สถาปตยกรรมการ ออกแบบมีขอดี
ขอเสีย สรรถนะการทํางานและการใชพลังงานในการประมวลผล จึงเปนเรื่องที่สําคัญที่จะตองพิจารณา
ในดานฮารดแวรก็มุงใหความสําคัญกับการออกแบบเพื่อลดการใชพลังงานอยางสิ้นเปลือง อยางไรก็ตาม
ในบทบาทของโปรแกรมเมอรควรใหความสําคัญ กับการออกแบบโปรแกรมที่มีสมถนะไดตรงตามความ
ตองการ และใชพลังงานใหนอยที่สุด งานวิจัยชิ้นนี้มุงหวังใหผูเริ่มตนเขียนโปรแกรมเชิงขนาน ให
ความสําคัญทั้งการเขียนโปรแกรมอยางมีประสิทธิภาพและคํานึงถึงการประหยัดพลังงาน โดยใชเครื่องมือ
ที่ชื่อวา LET ME C ซึ่งเปนเครื่องมือตัวอยางที่ชวยให ผูเริ่มตนการเขียนโปรแกรมเชิงขนานไดศึกษาการ
เขียนโปรแกรมเชิงขนานและผลกระทบ จากการใชพลังงานของโปรแกรม
คําสําคัญ: เครื่องมือเรียนรู, การทําความเขาใจโปรแกรมเชิงขนาน, สมรรถนะการประมวลผลเชิง
ขนาน, การเขียนโปรแกรมที่ตระหนักถึงพลังงาน
4. III
Abstract
Emerging of multicore architecture makes high-performance PCs available. Despite
that, the limitation caused by power crisis on such architecture has made the trade offs between
performance and power-aware computing ever more important. Hardware vendors have
focused their design on how to reduce the power consumption of components. However,
programmers also play an important role in designing a program which could satisfy
performance requirement within the minimum power consumption. This research work proposes
an approach for training novice parallel programmers to be both performance- and power-
aware by using a learning tool called LET-ME-C. We demonstrated that the tool could, not only
guide the programmers on how the codes could be parallelized, but also depict the impact of
novice’s codes on performance and power consumption at prompt.
Keywords: Learning tool, Parallel Program Comprehension, Parallel Execution
performance, Power-aware programming
5. IV
บทนํา
การเปลี่ยนยุคของหนวยประมวลผลเขาสูยุคหลายหนวยประมวลผล (Multicore) สงผลกระทบ
ใหผูเขียนโปรแกรมประยุกตจะตองเปลี่ยนวิธีการพัฒนาโปรแกรมจากเชิงลําดับมาเปนเชิงขนาน เพื่อให
โปรแกรมสามารถดึงศักยภาพสูงสุดของหนวยประมวลผลทุกคอรในระบบขึ้นมาได โดยใหมีความ
สิ้นเปลืองพลังงานนอยที่สุด หนวยประมวลผลแบบหลายหนวยประมวลผล ประมวลผลพรอมกันไปเชิง
ขนานโดยรวมกันทํางานยอยซึ่งเปนอิสระตอกันทํางานพรอมกันไป ทําใหงานเสร็จเร็วขึ้น คอมพิวเตอรสวน
บุคคลที่มีหนวยประมวลผลแบบหลายหนวยประมวลผล มักจะมีสถาปตยกรรมแบบใชหนวยความจํารวม
กลาวคือ เมื่อแบงการประมวลผลของโปรแกรมเปนงานยอย แตละสวนงานยอยสามารถเรียกใชตัวแปรใน
หนวยความจํารวมกันได โดยไมตองใชการสื่อสารขอมูลระหวางหนวยประมวลผล ดังนั้นการประมวลผล
เชิงขนานโดยใชหนวยความจํารวมจึงไดรับความนิยมในกลุมผูพัฒนาโปรแกรมเชิงขนานบนเครื่องหลาย
หนวยประมวลผล ซึ่งผูพัฒนาโปรแกรมสวนใหญจะใชโอเพนเอ็มพี (OpenMP) เปนสวนตอประสาน
โปรแกรมประยุกต (API) เพื่อพัฒนาโปรแกรมเชิงขนานบนเครื่องดังกลาว เพราะโอเพนเอ็มพีอํานวยความ
สะดวกในการแบงงานยอย ควบคุมการสื่อสารระหวางงานยอยโดยใชตัวแปรรวมกัน ลักษณะการสื่อสาร
โดยใชตัวแปรรวมกันนี้มีความใกลเคียงกับโปรแกรมแบบลําดับ จึงทําใหการเขียนโปรแกรมทําไดรวดเร็ว
อยางไรก็ตาม ทั้งที่หนวยประมวลผลแบบหลายหนวยประมวลผล นั้นกลายเปนแพลตฟอรมหลักในการ
ประมวลผลปจจุบัน แตผูเรียนเขียนโปรแกรมเบื้องตนยังไมมีเครื่องมือเพื่อชวยทําความเขาใจการ
ประมวลผลเชิงขนาน บนสถาปตยกรรมมัลติคอร จึงทําใหความรูทางดานการเขียนโปรแกรมเชิงขนานโดย
ใชโอเพนเอ็มพี ยังคงจํากัดอยูในกลุมผูเชี่ยวชาญเทานั้น นอกจากนี้ผูเรียนเขียนโปรแกรมเบื้องตน มักจะ
มองขามความสําคัญของการปรับปรุงสมรรถนะของโปรแกรมเพื่อลดความสิ้นเปลืองพลังงาน จึงเปนเหตุ
ให โปรแกรมที่ผลิตไดอาจจะทํางานตรงตามความตองการ แตไมไดถูกปรับใหใชพลังงานอยางประหยัด
ที่สุด
เพื่อเปนทางเลือกสําหรับผูเรียนเขียนโปรแกรมที่ตองการปรับแนวทางการเขียนโปรแกรมเขาสู
ยุคมัลติคอรงายขึ้น รายงานหัวขอพิเศษฉบับนี้จึงนําเสนอ โครงงานเล็ทมีซี โครงงานสรางเครื่องมือเรียนรู
เพื่อฝกเขียนโปรแกรมสําหรับเครื่องหลายหนวยประมวลผลโดยใชภาษาซี/ซีพลัสพลัส เพื่อเปนเครื่องมือ
ชวยในการเรียนรู และฝกฝนการเขียนโปรแกรมที่มีการประมวลผลเชิงขนาน เพราะในปจจุบันการ
ออกแบบระบบคอมพิวเตอรเริ่มใหความสนใจกับการออกแบบหนวยประมวลผลใหมีความสามารถดาน
การประมวลผลเชิงขนาน เพื่อเพิ่มความเร็วในการประมวลผล นอกจากนี้เล็ทมีซียังมีการแสดงผลขอมูล
เกี่ยวกับการใชพื้นที่หนวยความจําของโปรแกรม แสดงปริมาณพลังงานที่สูญเสียในการประมวลผล
เพื่อใหผูใชคํานึงถึงประสิทธิภาพของโปรแกรมที่ไดพัฒนาขึ้น
6. V
สารบัญ
กิตติกรรมประกาศ (Acknowledgement) I
บทคัดยอ II
Abstract III
บทนํา IV
สารบัญ V
สารบัญรูป VI
วัตถุประสงคและเปาหมาย 1
- วัตถุประสงค 1
- ประโยชน 2
รายละเอียดของการพัฒนา 3
- เนื้อเรื่องยอ 3
- ทฤษฎีหลักการและเทคนิคหรือเทคโนโลยีที่ใช 11
- เครื่องมือที่ใชในการพัฒนา 12
- รายละเอียดโปรแกรมที่ไดพัฒนาในเชิงเทคนิค 12
- ขอบเขตและขอจํากัดของโปรแกรม 13
- กลุมผูใช 13
- ผลการทดสอบโปรแกรม 13
เอกสารอางอิง (Reference) 17
ภาคผนวก (Appendix) 18
7. VI
สารบัญรูป
รูปที่ 1 เครื่องมือเรียนรูเอลวิส (ALVIS) แบบแสดงผลตอบกลับอัตโนมัติ – ทันทีที่ผูเรียนพิมพผิด
(Hundhausen และ Brown, 2007) 4
รูปที่ 2 ผังตนไมตัดสินใจเพื่อประมาณการใชพลังงาน (Xian, Lu, & Li, 2007) 5
รูปที่ 3 การใชพลังงานของโปรแกรมอานไฟลสี่วิธี (Xian, Lu, & Li, 2007) 5
รูปที่ 4 ภาพ Visual Programming Environment (Tan & Cai, 1994) 6
รูปที่ 5 Scalable Graph จะถูกแสดงเปนภาพการแตกเทรดในลักษณะกรวย 3 มิติ (Kim, Lom, & Jun,
2007) 7
รูปที่ 6 แสดง Data dependence และ Graph 7
รูปที่ 7 Iteration Space ของ Array 1 มิติ 7
รูปที่ 9 แสดง Iteration Vector 8
รูปที่ 10 Loop-independent dependence 8
รูปที่ 12 Distance Vector 8
รูปที่ 8 Iteration Space ของ Array 2 มิติ 8
รูปที่ 11 Loop-carried dependence 8
รูปที่ 15 แสดง ตัวอยางที่ 2 ของลูปทเกิด loop carried dependency ซึ่งสามารถทําการแกไข
dependency 9
รูปที่ 13 แสดงการวิเคราะห loop carried dependency 9
รูปที่ 14 แสดง ตัวอยางที่ 1 ของลูปทเกิด loop carried dependency ซึ่งสามารถทําการแกไข
dependency 9
รูปที่ 16 โปรแกรมเล็ทซี (ฤทธิรณชัย, 2550) 10
รูปที่ 17 แสดงหนาจอเพื่อเลือกไฟล Setup 17
รูปที่ 18 หนาจอการเริ่มติดตั้งโปรแกรม 18
รูปที่ 19 เลือกประเภทการติดตั้งโปรแกรม 18
รูปที่ 20 เริ่มตนการติดตั้งโปรแกรม 18
รูปที่ 21 แสดงหนาจอขณะทําการติดตั้งโปรแกรม 19
รูปที่ 22 หนาจอแสดงการลงทะเบียนโปรแกรม 19
รูปที่ 23 หนาจอแสดงการเสร็จสิ้นการลงโปรแกรม 20
8. VII
รูปที่ 24 หนาจอแสดงการกําหนดคุณสมบัติของโปรแกรม 20
รูปที่ 25 เลือกประเภทการกําหนดคุณสมบัติของโปรแกรม 21
รูปที่ 26 กําหนดวินโดวสอ็อบชั่น 21
รูปที่ 27 กําหนดอ็อบชั่นความปลอดภัยของโปรแกรม 22
รูปที่ 28 แสดงหนาจอขณะติดตั้งการกําหนดคุณสมบัติของโปรแกรม 23
รูปที่ 29 เสร็จสิ้นการกําหนดคุณสมบัติของโปรแกรม 23
รูปที่ 30 แสดงหนาจอเพื่อเลือกไฟล jre-6u3-windows-i586-p-s.exe 24
รูปที่ 31 แสดงหนาจอใหยอมรับเงื่อนไขลิขสิทธิ์ของโปรแกรม 25
รูปที่ 32 แสดงหนาจอขณะทําการติดตั้งโปรแกรม 25
รูปที่ 33 แสดงหนาจอเสร็จสิ้นการติดตั้งโปรแกรม 26
รูปที่ 34 นําไฟล letmec_beta1 ไปวางยังที่ที่ตองการ 27
รูปที่ 35 ภาพภายในไฟล letmec_beta1 27
รูปที่ 36 ภาพ Logo ของเล็ทมีซี 28
รูปที่ 37 ภาพโปรแกรมเล็ทมีซี 28
รูปที่ 38 ภาพ Open file เพื่อเปดไฟล 29
รูปที่ 39 ภาพการเปดไฟล 29
รูปที่ 40 ภาพแสดงไฟล test.cpp 30
รูปที่ 41 ภาพแสดงการเลือกคําสั่ง การ Run โปรแกรม 30
รูปที่ 42 ภาพแสดงการ Run โปรแกรม 31
รูปที่ 43 ภาพแสดง Execution time และ Instruction count 31
รูปที่ 44 ภาพแสดงการเลือก รุนของ Processor และชื่อของรุน ของ Processor 32
รูปที่ 45 ภาพแสดงการยีนยันการเลือก Processor และการเปลียนแปลงของ Ideal Time 32
9. 1
วัตถุประสงคและเปาหมาย
เล็ทมีซีเปนเครื่องมือชวยสอนเขียนโปรแกรมแบบขนาน (Parallel Programming) ที่สงเสริมให
ผูเรียนตระหนักถึงความสําคัญของการออกแบบโปรแกรมตอความสิ้นเปลืองพลังงาน ผูพัฒนาจึงมี
แนวทางในการพัฒนาโปรแกรมเล็ทมีซีขึ้นเพื่อเปนเครื่องมือชวยในการเรียนรู และฝกฝนการเขียน
โปรแกรมที่มีการประมวลผลเชิงขนาน เพราะในปจจุบันการออกแบบระบบคอมพิวเตอรเริ่มใหความสนใจ
กับการออกแบบหนวยประมวลผลใหมีความสามารถดานการประมวลผลเชิงขนาน เพื่อเพิ่มความเร็วใน
การประมวลผล นอกจากนี้เล็ทมีซียังมีการแสดงผลขอมูลเกี่ยวกับการใชพื้นที่หนวยความจําของโปรแกรม
แสดงปริมาณพลังงานที่สูญเสียในการประมวลผล เพื่อใหผูใชคํานึงถึงประสิทธิภาพของโปรแกรมที่ได
พัฒนาขึ้น
วัตถุประสงค
เพื่อสรางโปรแกรมเล็ทมีซีซึ่งเปนโปรแกรมประยุกตใชบนวินโดว ตอยอดจากโปรแกรมเล็ทซี โดย
เพิ่มสวนการสอนเขียนโปรแกรมเชิงขนานดังนี้
1. เพื่อพัฒนาตัวตัดคําและตัวเทียบไวยากรณ(Lexical scanner และ Syntactic Analyser)
ใหสามารถ อานไวยากรณ ของโอเพนเอ็มพีเอพีไอได
2. เพื่อพัฒนาสวนติดตอกับผูใชโปรแกรมเล็ทมีซี ใหสามารถไฮไลทไวยากรณของโปรแกรมเชิง
ขนานได
3. เพื่อพัฒนาสวนวิเคราะหประสิทธิภาพการประมวลผลโปรแกรมเชิงขนานที่ผูใชเขียนขึ้นใน
เล็ทมีซี
4. เพื่อพัฒนาตัววิเคราะหความสิ้นเปลืองพลังงานของโปรแกรมเชิงขนานที่ผูใชเขียนขึ้นใน
เล็ทมีซี
10. 2
ประโยชน
1. การสรางโปรแกรมเล็ทมีซี เปนแนวคิดใหผูใชเขาใจการประมวลผลเชิงขนาน ซึ่งเปนความรู
เบื้องตนของการทํางานของคอมพิวเตอรที่มีระบบการประมวลผลเชิงขนานหรือคอมพิวเตอร
แบบ Core 2 Duo ที่ในปจจุบันคอมพิวเตอรจะเริ่มมีการพัฒนาระบบการประมวลผลแบบเชิง
ขนานมีแนวโนมใชกันมากขึ้น เพราะฉะนั้นผูใชคอมพิวเตอรจะสามารถศึกษาระบบการ
ประมวลผลเชิงขนานไดจากโปรแกรมเล็ทมีซี
2. สวนของการไฮไลทโปรแกรมจะชวยใหผูใชเห็นความผิดพลาดของการเขียนโปรแกรมไดงายขึ้น
และทันที โดยเมื่อผูใชพิมพคําสั่ง หรือโคดในสวนที่เปนคําสําคัญ เล็ทมีซีจะทําการไฮไลทใน
สวนทําเหลานั้นทันที ทําใหผูใชงานสามารถตรวจสอบไดทันที
3. สวนของการวิเคราะหพลังงานและประสิทธิภาพทําใหผูใชทราบถึงการใชพลังงานและ
ประสิทธิภาพของโปรแกรมที่ผูใชเขียนขึ้นได
4. การสรางสวนของโปรแกรมโดยใชจาวาเทคโนโลยี ทําใหผลลัพธที่ได สวนวิเคราะห
ประสิทธิภาพ หรือสวนวิเคราะหการใชพลังงาน สามารถนําไปพัฒนาตอเพื่อสรางเปน
โปรแกรมประยุกตอื่นๆ ได
11. 3
รายละเอียดของการพัฒนา
ในการพัฒนาโครงงานเล็ทมีซีผูพัฒนาไดทําศึกษารายละเอียด ประวัติความเปนมาของขอมูล
ตางๆ ที่เกี่ยวของ และทฤษฎีตางๆ ที่มีความเกี่ยวของ ดังนี้
เนื้อเรื่องยอ (Story Board)
เครื่องมือเรียนรูสําหรับฝกเขียนโปรแกรมเริ่มตนมีในรูปแบบของโปรแกรมชวยสอน หรือ ซีเอไอ (Computer
Aided Instruction) โดยในป ค.ศ. 1970 มีระบบชวยสอนชื่อ “ทีช (TEACH)” ของมหาวิทยาลัยเอ็มไอที (MIT) เปน
โปรแกรมสอนเขียนโปรแกรมภาษา UNCL ใหกับนักศึกษาชั้นปที่หนึ่ง (Fenichel, Weizenbaum, & Yochelson, 1970)
[5] ในป ค.ศ. 1968 - 1969 ซึ่งไดรับการยอมรับจากผูเรียนโดยสวนใหญ แตผูวิจัยไมไดประเมินประสิทธิภาพของการ
เรียนรูที่ไดรับจากการใชโปรแกรม จึงไมอาจระบุไดวาโปรแกรมทีชมีสวนชวยพัฒนาศักยภาพของผูเรียน
ภายหลังจากระบบทีช มีคณะวิจัยกลุมหนึ่ง (เนวาเลียเนน และคณะ, 2006) กลาวถึงงานวิจัยซึ่งไดพัฒนา
เครื่องมือชวยสอนโดยใชภาพหลายชิ้น โดยกลาววา การศึกษาของเครื่องมือเหลานี้ไดแสดงใหเห็นวา การสอนเขียน
โปรแกรมโดยใชภาพมีผลสัมฤทธิ์ตอการเรียนรูระยะยาว (Long-term effects) จึงไดนําเสนองานวิจัยเพื่อพิสูจนผลกระทบ
จากการใชภาพเคลื่อนไหวหรือภาพนิ่ง ตอการเรียนรูระยะสั้น (Short-term effects) เนวาเลียเนน และคณะ ใชโปรแกรม
ชวยสอนชื่อ แพลนเอนี่ (PlanAni) มาทําการทดลอง โดยปรับใหแพลนเอนี่แสดงภาพเคลื่อนไหวในสองระดับ คือแสดงโดย
ละเอียด และแสดงอยางหยาบหรือแสดงเปนภาพนิ่ง ผูวิจัยทําการทดลองโดยใหผูเรียนกลุมเดียวกัน ทดลองใชแพลนเอนี่
ทั้งสองรูปแบบ และพบวาผูเรียนใหความสนใจกับขอความประกอบมากกวาภาพเคลื่อนไหว จึงสรุปไดวาการมี
ภาพเคลื่อนไหวโดยละเอียดไมไดมีผลกระทบตอการโตตอบระยะสั้นของผูเรียน เทากับการมีคําอธิบายหรือขอความ
ประกอบภาพ ซึ่งสอดคลองกับขอมูลในตัวโปรแกรม
ในป ค.ศ. 2005 เอฟโฟโปลัส และคณะ (Efopoulos, Dagdilelis, Evangelidis, & Satratzemi, 2005) เสนอ
เครื่องมือเรียนรูบนเว็บชื่อ ไวป (WIPE – Web Integrated Programming Environment) โดยเสนอวาเครื่องมือเรียนรูควร
ใชหลักการออกแบบสามประการไดแก
1. เครื่องมือควรออกแบบใหงายตอการใชงาน (Simplicity)
2. เครื่องมือควรใชขอมูลที่สอดคลองกับหนังสือหรือคูมือ (Consistency)
3. เครื่องมือควรเนนใหผูเรียนเขียนโปรแกรมไมใชออกแบบจอภาพ (Emphasis on the source code)
คณะวิจัยไดนําไวปไปทดลองใชกับนักศึกษาซึ่งเรียนเขียนโปรแกรมในชั้นปที่หนึ่ง และคนพบความผิดพลาดที่
นักศึกษาสวนใหญตองใชเวลานานในการแกไข ไดแก ผิดไวยากรณแปดประการ และการผิดเชิงตรรกะสี่ประการ
ฮันดฮาวเซนและบราวน (Hundhausen & Brown, 2007) ศึกษาผลกระทบของคุณลักษณะความมีชีวิตชีวา
(Live ness) ของเครื่องมือเรียนรู ตอผลสัมฤทธิ์ของการเรียนของผูเริ่มตนเรียนวิธีการเขียนโปรแกรมเชิงขั้นตอน
(Imperative programming) และไดคนพบวาผูเรียนจะเขียนคําสั่งที่ผิดไวยากรณและผิดความหมายนอยมากหากผูเรียน
ไดรับผลตอบกลับ (feedback) จากเครื่องมือเรียนรูเมื่อเทียบกับการไมไดรับผลตอบกลับ แตอยางไรก็ตาม ไมวาผูเรียนจะ
ไดรับผลตอบกลับดวยวิธีการใด ไมสงผลวาจะชวยใหผูเรียนลดการเขียนไวยากรณหรือความหมายผิดแตกตางกันอยางมี
12. 4
นัยสําคัญทางสถิติ กลาวคือ การเลือกรับผลตอบกลับเมื่อตนตองการ (Self-select feedback) หรือ การแสดงผลตอบกลับ
ทันทีโดยอัตโนมัติ (Automatic feedback) นั้นไมมีความแตกตางกัน
งานวิจัยของ ฮันดฮาวเซนและบราวน ศึกษาสองในสามองคประกอบ ของคุณลักษณะความมีชีวิตชีวาของ
เครื่องมือเรียนรู ซึ่งทานิโมโตไดระบุไว (Tanimoto’s notion of liveness) ไดแก
1. ลักษณะของเนื้อหาที่ตอบกลับตอผูเรียน (feedback content)
2. เวลาที่ผูเรียนตองรอผลตอบกลับ (feedback delay)
3. วิธีการที่ผูเรียนไดรับผลตอบกลับ (feedback self-selection) ซึ่งหมายถึงผูเรียนสามารถเลือกรับผล
ตอบกลับเมื่อตองการ หรือ เครื่องมือเรียนรูแสดงผลตอบกลับทันทีโดยอัตโนมัติ
โดยใชเครื่องมือเรียนรูชื่อ เอลวิส (ALVIS) สอนเขียนโปรแกรมภาษาซัลซา (SALSA) ซึ่งเปนภาษาอยางงาย มี
ลักษณะคลายคําสั่งเทียม เอลวิสถูกปรับเปนสามรูปแบบจําแนกตามลักษณะการแสดงผลตอบกลับ ฮันดฮาวเซนและบ
ราวน คัดเลือกนักศึกษาระดับปริญญาตรีชั้นปที่ 1 โดยคัดเลือกผูที่ไมเคยเขียนโปรแกรมมากอน โดยนักวิจัยคาดวาจะทํา
การทดลองในอนาคตเพื่อหาผลกระทบของการชะลอเวลาสงผลตอบกลับ และความเปนไปไดที่จะสรางเครื่องมือเรียนรูที่
ปรับตามลักษณะความตองการของผูเรียนได
รูปที่ 1 เครื่องมือเรียนรูเอลวิส (ALVIS) แบบแสดงผลตอบกลับอัตโนมัติ – ทันทีที่ผูเรียนพิมพผิด
(Hundhausen และ Brown, 2007)
สวนการเขียนโปรแกรมโดยตระหนักถึงพลังงาน (Power-aware programming) นั้นเปนประเด็น
สําคัญในการผลิตโปรแกรมสําหรับระบบฝงตัว หรือสําหรับหนวยประมวลผลแบบฝงตัว ซึ่งการวิเคราะห
ความสิ้นเปลืองพลังงานไฟฟานั้น อธิบายโดยใชปริมาณพลังงานในหนวย วัตต (watt) วัตตตอชั่วโมง
(watt-hour) หรือ จูล (Joule) การประมาณการใชพลังงานในปจจุบันทําโดยวิเคราะหจากคําสั่ง
ภาษาแอสเซมบลี โดยคอมไพเลอรซึ่งการวิเคราะหแบงเปน ระดับรอบของสัญญาณนาฬิกา ระดับคําสั่ง
ระดับกลุมคําสั่ง และระดับฟงกชั่น
เซียนและคณะ (Xian, Lu, & Li, 2007)เสนอเครื่องมือเขียนโปรแกรมเพื่อสรางโปรแกรมประยุกต
ที่ตระหนักถึงการใชพลังงาน โดยเครื่องมือนี้จะแสดงคุณลักษณะการใชพลังงานของโปรแกรมเมื่อ
13. 5
ประมวลผล เครื่องมือเขียนโปรแกรมที่นักวิจัยเสนอมีลักษณะเปน ไลบราลี่ที่โปรแกรมประยุกตสามารถ
เรียกใชได (Application Program Interface Library) ที่จะนําไปใชเพื่อวิเคราะหความสิ้นเปลืองพลังงาน
การประมาณความสิ้นเปลืองพลังงานทําโดยแบงการทํางานของคําสั่งในโปรแกรมเปนสามชนิด
การสงรับขอมูลจากเครือขาย (net) การอานเขียนดิสก (disk) การคํานวณที่หนวยประมวลผล (processor)
เมื่อโปรแกรมประมวลจนถึงคําสั่งQueryEnergy ไลบรารี่จะประสานงานกับ OS เพื่อนํากลุมคําสั่งที่อยู
ในชวงมาแยกชนิดและประเมินคาพลังงานของคําสั่งแตละชนิดโดยใชตนไมตัดสินใจ (ดังรูปที่ 2) และ
คํานวณคาประมาณการสิ้นเปลืองพลังงานออกมาในหนวยจูล (ดังรูปที่3)
รูปที่ 2 ผังตนไมตัดสินใจเพื่อประมาณการใชพลังงาน (Xian, Lu, & Li, 2007)
รูปที่ 3 การใชพลังงานของโปรแกรมอานไฟลสี่วิธี (Xian, Lu, & Li, 2007)
ผลลัพธจากการทดลองพบวาไลบรารีสามารถชวยใหผูสรางโปรแกรมไดประเมินความสิ้นเปลือง
พลังงานของโปรแกรมได และชวยใหผูเขียนโปรแกรมตระหนักตอความสําคัญในการประเมินการใช
พลังงานในระหวางพัฒนาโปรแกรม
การเขียนโปรแกรมที่มีการทํางานแบบประมวลผลเชิงขนาน จะชวยลดเวลาในการประมวลผลให
ลดลง และเพิ่มประสิทธิภาพใหกับคอมพิวเตอร แตเนื่องจากการพัฒนาโปรแกรมเชิงขนาน มีความยุงยาก
ซับซอนในการเขียนโปรแกรม ดังนั้นหัวใจหลักที่ชวยในการพัฒนาโปรแกรมเชิงขนานจึงอยูกับเครื่องมือที่
ชวยในการพัฒนา ซึ่งยังมีนอย ในป ค.ศ.1994 ฮงคอนเทน และคณะ (Tan และ Cai, 1994) ไดเสนอ
เครื่องมือที่ชื่อวา วีพีคอนส (VPEcons) ซึ่งเปนเครื่องมือที่ชวยในเขียนโปรแกรมเชิงขนาน ประเภท Visual
14. 6
Programming Environment โดยเริ่มจากการพัฒนาเปนรูปแบบของ Model รูปภาพ เพื่อใหงายตอการ
เขาใจระบบการทํางานของโปรแกรมที่ออกแบบ และลักษณะของโปรแกรมประเภท Visual
Programming Environment
รูปที่ 4 ภาพ Visual Programming Environment (Tan & Cai, 1994)
วีพีคอนส จึงเปนอีกเครื่องมือหนึ่งที่เขามาชวยในการพัฒนาโปรแกรมเชิงขนานใหงายขึ้น โดย
ลักษณะของ วีพีคอนสจะใชกราฟฟกเขามาเปนเครื่องมือชวยในการออกแบบโปรแกรมเชิงขนานใหอยูใน
รูปแบบของโมเดล หลังจาก VPECons จะแปลงจากรูปแบบของโมเดลเปนภาษา C ที่สามารถทํางาน
บนระบบเชิงขนานได
ภายหลังมีการใชคําสั่งโอเพนเอ็มพี ซึ่งเปนสวนตอประสานโปรแกรมประยุกต(API) ที่ถูกเลือกใช
สําหรับพัฒนาโปรแกรมเชิงขนาน สามารถรองรับการโปรแกรมในภาษาซี/ซีพลัสพลัสและฟอรเทน รวมถึง
รวมถึง ยูนิค(Unix )และไมโครซอรฟ วินโดวร (Microsoft Window) ในป ค.ศ. 2004 เรนี คลอบเบอร และ
คณะ (Kobler, Kranzlmuller, และ Volkert, 2004) ไดเสนอเครื่องมือที่ชื่อวา เดวิซ (DeWiz) ในรูปแบบ
ของกราฟแสดงเหตุการณ(Event Graph) ที่จะอธิบายการเปลี่ยนแปลงในแตละขั้นตอนการประมวลผล
คําสั่งตางๆ ในสวนของโปรแกรมเชิงขนาน (Critical Regions) ที่ถูกแทรกดวยคําสั่งของ OpenMP
ในการใชคําสั่ง เพื่อใชในการแตกเทรดมักจะเกิดปญหาในการแยงกันใชขอมูล หรือที่เรียกวา
Data race ยังโจ คิม และคณะ (Kim, Lom, และ Jun, 2007) ไดมีการนําเสนอ Thread Visualization tool
ซึ่งเปนเครื่องมือที่เขามาชวยแสดง ลําดับการทํางานของการแตกเทรด เปนภาพ Scalable Graph ที่ถูก
แสดงเปนภาพการแตกเทรดในลักษณะกรวย 3 มิติ (3D Cone Scalable Thread Visualization และจะถูก
ตรวจสอบประสิทธิภาพ ในการคนหาการแยงกันใชขอมูล ไดโดย Synthetic Program
15. 7
รูปที่ 5 Scalable Graph จะถูกแสดงเปนภาพการแตกเทรดในลักษณะกรวย 3 มิติ (Kim, Lom, & Jun, 2007)
Data Dependence
เปนการ รอบันทึกและการอานคาของขอมูลลงหนวยความจํา ที่ตองพิจาณาในเรื่องของลําดับการประมวลผล
ของตัวแปรในโปรแกรม โดยสามารถแบงประเภทไดดังนี้
1. Flow Dependence (or true dependence) : (RAW: read after write)
2. Antidependence : (WAR: write after read)
3. Output Dependence: (WAW: writer after write)
รูปที่ 6 แสดง Data dependence และ Graph
การวิเคราะห loop carried dependency
Loop dependence คือการที่ในหนึ่งรอบการวนลูปแตละครั้ง statement การทํางานขางในลูปมี
dependency กันระหวางลูป กลาวคือขางในการทํางานของลูปมีขอมูลที่เกิดความเกี่ยวเนื่องกันในลักษณะของ
Data dependency ทําใหลูปนั้นประมวลผลโดยการแบงการทํางานออกเปนเทรดยอยๆไมได
สิ่งที่ตองพิจารณาในการวิเคราะห loop carried dependency มีดังนี้
1. Iteration Space
เปนตัวบอกจํานวนครั้งที่เกิดการวนลูป ซึ่งหมายความวา loop มีการกวาดพื้นที่ไปเทาใด เชน
do i = 1,100
A(i) = A(i)+1
enddo
รูปที่ 7 Iteration Space ของ Array 1 มิติ
16. 8
2. Iteration Vector
Iteration Vector เปนคาที่บอกขนาด และทิศทางของ iซึ่งเปนตัวกําหนดการวนลูป วาคา iมีการเพิ่มหรือ
ลด ไปในทิศทางใด
รูปที่ 9 แสดง Iteration Vector
จากรูป Iteration Vector คือคา i ที่มีการเพิ่มทีละ 1 และเคลื่อนที่ไปในทิศทางขวามือ
3. Dependence and Loop
ในการประมวลผลเชิงขนานนั้น จําเปนตองพิจารณาดวยวา ขางในลูปมีการเกิด dependency แบบใดซึ่ง
ในบางลักษณะของ dependency สามารถแกไขได ซึ่งสงผลใหสามารถแบงการทํางานเปนสวนยอยๆที่
สามารถทํางานพรอมกันได
ลักษณะของ Dependency
- Loop-independent dependence
รูปที่ 10 Loop-independent dependence
- Loop-carried dependences
4. Distance Vectors
เปนคาที่บอกวา คา output ที่การประมวลผลกอนหนา จะเปนคา input ที่คําสั่งตอมา ซึ่งอยูในลูปเดียวกัน โดย
มีระยะหาง เปนเทาใด โดยหาคา Distance Vector ไดจาก v = iT – iS (target– source)
รูปที่ 12 Distance Vector
do j = 1,6
do i = 1,5
A(j,i) = A(j-1,i-1)+1
enddo
enddo
do i = 1,100
A(i) = B(i) + 1
C(i) = A(i) * 2
enddo
do i = 1,6
do j = 1,5
A(i,j) = A(i-1,j-2)+1
enddo
enddo
Distance Vector : (1,2)
do i = 1,100
A(i) = A(i-1)+1
enddo
do i = 1,100
A(i) = B(i) + 1
C(i) = A(i-1) * 2
enddo
รูปที่ 8 Iteration Space ของ Array 2 มิติ
รูปที่ 11 Loop-carried dependence
17. 9
วิเคราะหหา loop carried dependency
ในการเขียนโปรแกรม เชิงขนาน นั้น สิ่งแรกที่ตองคํานึงถึงนั้นคือ การพิจารณาวาในโคดสวนใดสามารถทําการ
ประมวลผลเชิงขนานได โดยตองวิเคราะห วาเกิด dependency หรือไม โดยหาจากการหาคาของ iteration space และ
คาของ distance vector โดยทั้งสองจะทําใหทราบวาการทํางานของลูปนั้น มี input ใดที่รอ output อื่นอยูซึ่งหมายความ
วาในการทํางานนั้นเกิด dependency ซึ่งในขั้นตอมาคือการวิเคราะหวา dependency สามารถแกไขไดหรือไม ถา
สามารถแกไข ได หมายความวา โคดสวนนั้นสามารถทําการประมวลผลเชิงขนานได
จากโคดตัวอยาง
วิเคราะหหา Distance vectors ได
Distance vectors : (1,0) for accesses to A
(0,1) for accesses to B
A เกิด loop carries dependency ที่ลูป i
B เกิด loop carries dependency ที่ลูป j
Loop Transformations
ลักษณะของลูปขางลางนี้ เปนลูปที่เกิด loop carried dependency ซึ่งสามารถทําการแกไข
dependency ที่เกิดขึ้นได โดยการสลับการทํางานของลูปขางใน กับลูปขางนอก ทําใหสามารถแบงงานยอย
เพื่อการประมวลผลเชิงขนานได
รูปที่ 15 แสดง ตัวอยางที่ 2 ของลูปทเกิด loop carried dependency ซึ่งสามารถทําการแกไข dependency
do i = 1,5
do j = 1,5
A(i,j) = B(i-1,j)+1
B(i,j) = A(i, j-1) * 2
enddo
enddo
do i = 1,6
do j = 1,5
A(i,j) = A(i-1,j-2)+1
enddo
enddo
do j = 1,5
do i = 1,6
A(i,j) = A(i-1,j-2)+1
enddo
enddo
รูปที่ 13 แสดงการวิเคราะห loop carried dependency
รูปที่ 14 แสดง ตัวอยางที่ 1 ของลูปทเกิด loop carried dependency ซึ่งสามารถทําการแกไข dependency
18. 10
จากการศึกษาเครื่องมือเรียนรูสําหรับฝกเขียนโปรแกรม โดยโปรแกรมเล็ทซี (ฤทธิรณชัย, 2550)
ซึ่งเปนเครื่องมือชวยสอนเขียนโปรแกรมเชิงลําดับรูปแบบหนึ่ง
รูปที่ 16 โปรแกรมเล็ทซี (ฤทธิรณชัย, 2550)
และจากการศึกษาเรื่องของการพัฒนาโปรแกรมเชิงขนาน ทําใหทราบวา โปรแกรมในลักษณะ
เครื่องมือเรียนรูสามารถชวยใหโปรแกรมเมอรมีผลสัมฤทธิ์ทางการเรียนเพิ่มมากขึ้น ประกอบกับแนวโนม
ของคอมพิวเตอรในอนาคต การออกแบบระบบคอมพิวเตอรเริ่มใหความสนใจกับการ เพิ่มความเร็วในการ
ประมวลผล โดยออกแบบใหเครื่องคอมพิวเตอรมีหลายหนวยประมวลผล ซึ่งจะชวยลดเวลาในการ
ประมวลผลใหลดลง และเพิ่มประสิทธิภาพใหกับคอมพิวเตอรไดเปนอยางมาก ดังนั้นการทํางานแบบ
ประมวลผลเชิงขนานจึงมีแนวโนมวาถูกนําไปใชกันมากในอนาคตอันใกล และยังขาดเครื่องมือสําหรับการ
ชวยเขียนโปรแกรมเชิงขนาน จึงเปนเรืองที่นาสนใจที่จะสรางโปรแกรมเพื่อชวยโปรแกรมเมอรในการเขียน
โปรแกรมเชิงขนานขึ้นมา
การพัฒนาเกี่ยวกับการเขียนโปรแกรมเชิงขนานกอนหนานั้นมีเครื่องมือที่ถูกพัฒนาขึ้นมากมาย
โดยสวนใหญจะเนนการแสดงภาพการทํางานของโปรแกรมที่ทํางานเชิงขนานที่มีความซับซอนเพื่อให
เขาใจไดงายขึ้น และเพื่อตรวจหาความผิดพลาดจาการทํางานเชิงขนาน และจากการวิจัยตางๆไดชี้ให
ตระหนักวาการทํางานเชิงขนานมีลักษณะโครงสรางที่ซับซอนซึ่งเกิดจากการทํางานของสวนยอยเปน
จํานวนมาก และการแสดงเปนรูปภาพของโครงสราง และพฤติกรรมของการประมวลผลเชิงขนานนั้นมี
ความจําเปนและสามารถชวยใหเขาใจโปรแกรมเชิงขนานไดงายขึ้น ผูพัฒนาเล็ทมีซีจึงเลือกที่จะพัฒนา
เครื่องมือชวยเขียนโปรแกรมเชิงขนานโดยใหความสามารถการแสดงภาพการทํางานของโปรแกรมเชิง
ขนานเปนสิ่งสําคัญที่โปรแกรมตองมี
19. 11
ทฤษฎีหลักการและเทคนิคหรือเทคโนโลยีที่ใช
1. การหาคาประสิทธิภาพจะมีสวนที่ติดตอกับผูใช ซึ่งแบงออกเปนสองสวนหลัก คือ
1.1 เวลาที่ไดจากการประมวลผลจริง (Measured Response Time) ในสวนนี้จะเปนสวนที่มี
การแสดงเวลาที่จับไดในการประมวลผลโปรแกรมที่ผูเรียนเขียนขึ้นจริง โดยมีหนวยเปนมิลลิวินาที
(ms)
1.2 เวลาประมวลผลที่ไดจากการคํานวณ (Theoretical Execution Time) ในสวนนี้จะเปน
สวนที่มีการแสดงเวลาในการประมวลผลโปรแกรมที่ผูเรียนเขียนขึ้นโดยไดจากการคํานวณ ซึ่งเวลา
ดังกลาวสามารถหาไดจากสมการประเมินประสิทธิภาพ (Performance Equation) โดยสมการ
ประเมินประสิทธิภาพ มีดังนี้
ประมาณความเร็วในการประมวลผล (Execution Time Equation)
คําอธิบายสมการ
1. Execution Time คือ เวลาในการประมวลผล มีหนวยเปน วินาที (second)
2. Instruction Count คือ จํานวนคําสั่งที่ประมวลผลในโปรแกรม
3. CPI หรือ Cycle Per Instruction คือ จํานวนรอบการทํางานตอหนึ่งคําสั่ง
4. Clock Rate คือ ความถี่ของสัญญาณนาฬิกาของหนวยประมวลผล มีหนวยเปน เฮิรซ (Hz)
2. ประเภทชุดคําสั่งภาษาของเครื่อง ไดแก
1. Data Transfer Instruction
2. Control Transfer Instruction
3. I/O Instruction
4. Floating-point Instructions
5. Binary Arithmetic Instructions
6. No Operation Instructions
Execution Time = Instruction Count * CPI * 1/Clock Rate
20. 12
เครื่องมือที่ใชในการพัฒนา
1. ภาษา Java
2. Eclipse RCP
3. Java CUP
4. JFlax
5. JFreeChart
รายละเอียดโปรแกรมที่ไดพัฒนาในเชิงเทคนิค (Software Specification)
1. Input/Output Specification
1.1 Input Specification
- โคดภาษา C++ ที่ผูใชเขียนขึ้น
1.2 Output Specification
- โคดโปรแกรมที่ทําการไฮไลท
- แสดงผลการคอมไพลโปรแกรม และ Error ของโปรแกรมที่ผูใชเขียนขึ้น
- แสดง Instruction ดวย Pie Chart
- แสดง Excuetion Time ดวย Bar Chart
2. Functional Specification
2.1 สามารถวิเคราะหและไฮไลท(highlight)ไวยากรณของโปรแกรม
2.2 สามารถ Compile และ Run โปรแกรมที่ผูใชเขียนขึ้นได
2.3 สามารถรายงาน error ของโปรแกรม
2.4 สามารถคํานวณ Excuetion Time ของโปรแกรมและแสดงออกมาในรูปแบบของ Bar Chart
ได
2.5 คํานวณหา Instruction count ของโปรแกรม และแสดงออกมาในรูปแบบของ Pie Chart ได
22. 14
ปญหาและอุปสรรค
เล็ทมีซีมีการพัฒนาที่คอยขางซับซอน การพัฒนาจึงตองถูกแบงออกเปนสวนๆ และจะมีการพัฒนา
ที่แตกตางกัน จึงตองใชเวลาในการวิเคราะหและพิจารณาในแตละสวน
เล็ทมีซี มีสวนที่เปน Compiler ซึ่งตองมีการเขียนในสวน Passer และ Scanner ที่ตองใชเวลาใน
การเขียน และตองมีการตรวจสอบ
มีสวนที่ตองใชเครื่องมือเขามาชวยในการพัฒนาโครงการ เชน Eclipse RCP ซึ่งผูพัฒนาไมมี
ความคุนเคย และตองมีการศึกษาเครื่องมือที่เขามาชวยในการพัฒนา ซึ่งอาจตองใชเวลาใน
การศึกษามาก
เล็ทมีซี ตองมีการนําสวนตางๆ ที่ไดพัฒนาขึ้นมาประกอบเปนระบบใหญ โดยแตละสวนทําการ
พัฒนาโดยใชวิธีแตกตางกัน และจะมีปญหาในการประกอบเขากันเปนระบบใหญ
แนวทางในการพัฒนาและประยุกตใชรวมกับงานอื่นๆ ในขั้นตอไป
โครงงานเล็ทมีซีเปนเครื่องมือชวยสอนภาษาเขียนโปรแกรมเชิงขนาน ดวยภาษาซีพลัสพลัส
เพราะเนื่องจากคอมพิวเตอรสวนใหญถูกพัฒนาใหมีหนวยประมวลผลหลายคอร ดังนั้นผูเขียนโปรแกรม
จะตองเปลี่ยนวิธีการพัฒนาโปรแกรมจากเชิงลําดับมาเปนเชิงขนาน เพื่อเปนสิ่งที่จะเพิ่มประสิทธิภาพของ
เครื่องประมวลผลหลายคอรใหทํางานไดเต็มประสิทธิภาพยิ่งขึ้น และเนื่องจากสภาวะโลกในปจจุบันมีการ
ตระหนักถึงการใชพลังงานมากขึ้น การเขียนโปรแกรมที่คํานึงถึงการประหยัดพลังงานจึงเปนอีกสิ่งหนึ่งที่
ตองเห็นความสําคัญอีกเชนกัน เล็ทมีซีจึงเปนเครื่องมือทีจะชวยใหผูใชจึงจําเปนตองมีการเรียนรูการเขียน
โปรแกรมเชิงขนาน และในขนะเดียวกันก็ชวยใหผูใชเห็นถึงการใชพลังงานของโปรแกรมที่ไดเขียนขึ้นเชนกัน
เพื่อใหผูใชนําไปปรับปรุง เพื่อใหโปรแกรมที่พัฒนามีประสิทธิภาพยิ่งขึ้น
เนื่องจากเล็ทมีซีเปนโปรแกรมที่อานภาษาซีพลัสพลัส แตสามารถพัฒนาเพิ่มเติมเพื่อนําไปใช
วิเคราะหภาษาอื่นๆ เชน ซี จาวา หรือ ชีซาพ โดยนําสวนของ Passer และ Scanner ของเล็ทมีซีไปพัฒนา
เพิ่มเติม
24. 16
เอกสารอางอิง (Reference)
Efopoulos, V., Dagdilelis, V., Evangelidis, G., & Satratzemi, M. (2005). a programming
environment for novices. Proceedings of the 10th annual SIGCSE conference on
Innovation and technology in computer science education (pp. 113-117). Caparica,
Portugal: ACM Press New York, NY, USA.
Fenichel, R. R., Weizenbaum, J., & Yochelson, J. C. (1970). A program to teach programming.
In Communications of the ACM (pp. 141-146). New York: ACM.
Hundhausen, C. D., & Brown, J. L. (2007). An experimental study of the impact of visual
semantic feedback on novice programming. In Journal of Visual Languages and
Computing (pp. 537-559). Orlando, FL, USA: Academic Press, Inc.
Kim, Y.-J., Lom, J.-S., & Jun, Y.-K. (2007). Scalable Thread Visualization for Debugging Data
Race in OpenMP Programs., (pp. 310-321).
Mahim, M., J., C. T., Tiberiu, C., Girish, V., C., G. S., & Mihai, B. (December 2006). Tartan:
evaluating spatial computation for whole program execution. the 12th international
Conference on Architectural Support For Programming Languages and Operating
Systems (pp. 163-174). New York, NY, USA: ACM.
Tan, H.-K., & Cai, W. (1994). VPEcons:Avisual Constructor for Parallel Programming.
Xian, C., Lu, Y.-H., & Li, Z. (2007). A programming environment with runtime energy
characterization for energy-aware applications. the 2007 international symposium on
Low power electronics and design (pp. 141-146). New York, NY, USA: ACM.
ฤทธิรณชัย, พ. (2550). โครงงานปญหาพิเศษระดับปริญญาตรี เรื่อง เล็ทซี: เครื่องมือเรียนรูเพื่อฝกเปน
C++ โปรแกรมเมอรที่มีประสิทธิภาพและพอเพียง. กรุงเทพ: มหาวิทยาลัยธรรมศาสตร.
26. 18
รูปที่ 18 หนาจอการเริ่มติดตั้งโปรแกรม
3. เลือกติดตั้งโปรแกรมแบบ Typical เนื่องจากเปนการลงแบบมาตรฐาน จากนั้นกดปุม Next >
รูปที่ 19 เลือกประเภทการติดตั้งโปรแกรม
4. กดปุม Install เพื่อเริ่มตนการติดตั้งโปรแกรม
รูปที่ 20 เริ่มตนการติดตั้งโปรแกรม
28. 20
7. เลือก Configure the MySQL Server now จากนั้นกดปุม Finish เพื่อทําการกําหนดคุณสมบัติ
ของโปรแกรม
รูปที่ 23 หนาจอแสดงการเสร็จสิ้นการลงโปรแกรม
8. กดปุม Next > เพื่อทําการกําหนดคุณสมบัติของโปรแกรม
รูปที่ 24 หนาจอแสดงการกําหนดคุณสมบัติของโปรแกรม
29. 21
9. เลือก Standard Configuration จากนั้นกดปุม Next >
รูปที่ 25 เลือกประเภทการกําหนดคุณสมบัติของโปรแกรม
10. เลือก Install As Windows Service และ Launch the MySQL Server automatically จากนั้นกด
ปุม Next>
รูปที่ 26 กําหนดวินโดวสอ็อบชั่น
30. 22
11. เลือก Modify Security Settings แลวใสรหัสผาน หลังจากนั้นเลือก Enable root access from
remote machines แลวกดปุม Next >
รูปที่ 27 กําหนดอ็อบชั่นความปลอดภัยของโปรแกรม
12. กดปุม Execute เพื่อทําการกําหนดคุณสมบัติของโปรแกรม
32. 24
2 . การติดตั้งโปรแกรมที่ใชในโปรแกรมเล็ทมีซี โดยภายในเครื่องคอมพิวเตอรของผูใช ตองมี
GNU make 3.8 ขึ้นไป และ มี GNU gcc และ โปรแกรมที่นํามาติดตั้ง มีดังนี้
2.1 Java Runtime Environment (JRE) Version 1.6 ซึ่งมีขั้นตอนการติดตั้งโปรแกรม ดังรูปขางลาง
ตอไปนี้
1. เลือกไฟล jre-6u3-windows-i586-p-s.exe
รูปที่ 30 แสดงหนาจอเพื่อเลือกไฟล jre-6u3-windows-i586-p-s.exe
33. 25
2. กดปุม Accept > เพื่อยอมรับเงื่อนไขลิขสิทธิ์ของโปรแกรมตามกฎหมาย
รูปที่ 31 แสดงหนาจอใหยอมรับเงื่อนไขลิขสิทธิ์ของโปรแกรม
3. ระบบจะทําการติดตั้งโปรแกรมลงบนเครื่องคอมพิวเตอร
รูปที่ 32 แสดงหนาจอขณะทําการติดตั้งโปรแกรม
4. กดปุม Finish เปนการเสร็จสิ้นการติดตั้งโปรแกรม
35. 27
รูปที่ 34 นําไฟล letmec_beta1 ไปวางยังที่ที่ตองการ
2. เปดไฟล letmec_beta1 จะพบไฟลดังภาพ
รูปที่ 35 ภาพภายในไฟล letmec_beta1
3. เลือกเปดไฟล letmec_bet.exe จะปรากฏ Logo ของเล็ทมีซี ดังภาพ(สามารถสราง Shoutcu ได
จากไฟลนี้)
36. 28
รูปที่ 36 ภาพ Logo ของเล็ทมีซี
4. จะปรากฏภาพโปรแกรมเล็ทมีซี
รูปที่ 37 ภาพโปรแกรมเล็ทมีซี
คูมือการใชงานอยางละเอียด
1. เลือก Open file เพื่อเปดไฟลที่ตองการ
37. 29
รูปที่ 38 ภาพ Open file เพื่อเปดไฟล
2. เลือกไฟลที่ตองการ ดังตัวอยางคือ test1.cpp
รูปที่ 39 ภาพการเปดไฟล
3. ไฟลที่เปดขึ้นมาได ดังภาพคือไฟล test1.cpp
38. 30
รูปที่ 40 ภาพแสดงไฟล test.cpp
4. เลือก Analysis -> Run ทําการ Run โปรแกรม
รูปที่ 41 ภาพแสดงการเลือกคําสั่ง การ Run โปรแกรม
39. 31
5. เล็ทมีซีจะแสดงผลการ Run โปรแกรมที่ผูใชเขียนขึ้น
รูปที่ 42 ภาพแสดงการ Run โปรแกรม
6. โปรแกรมเล็มทีซี จะแสดง Execution time และ Instruction count
รูปที่ 43 ภาพแสดง Execution time และ Instruction count
40. 32
7. เราสามารถเลือก รุนของ Processor และชื่อของรุน ของ Processor ได
รูปที่ 44 ภาพแสดงการเลือก รุนของ Processor และชื่อของรุน ของ Processor
8. กด Confirm เพื่อยีนยันการเลือก คาของ Ideal Time จะเปลียนไป
รูปที่ 45 ภาพแสดงการยีนยันการเลือก Processor และการเปลียนแปลงของ Ideal Time