The secret to entrepreneurship is to discover what's wrong with the accepted wisdom and to do something about it

Larry Ellison


NARISA.COM

Enabling Software Society

Search

Home Knowledge Base Interview Interview : Intel and parallel-programming in Thailand
Interview : Intel and parallel-programming in Thailand Print
(4 votes, average 5.00 out of 5)
Written by archer   
Monday, 08 June 2009 14:53

Interview : Intel and parallel-programming in Thailand

Parallel Programming ได้เข้ามามีบทบาทและใกล้ตัวมากขึ่นสำหรับ Developer รวมถึงนักศึกษาที่ต้องเตรียมเนื้อเตรียมตัว บทสัมภาษณ์นี้ Narisa.com ได้มีโอกาสคุยกับคุณ จิรวิทย์ ถึงแนวโน้มและความสำคัญของเรื่องนี้กัน

@NarisaCom : สวัสดีครับ วันนี้ Narisa.com ได้รับเกียรติจากคุณจิรวิทย์ จากบริษัท อินเทล ประเทศไทย มาเล่าเรื่องราวที่เกี่ยวข้องกับ Parallel processing และ Parallel programming ให้เราฟังกัน ก่อนอื่นผมขอเรียนถามเกี่ยวกับหน้าที่รับผิดชอบของคุณจิรวิทย์ ก่อนนะครับ ไม่ทราบว่า คุณ จิรวิทย์ ทำอะไรที่ Intel ครับ


คุณจิรวิทย์ : สวัสดีครับ ผมขอแนะนำตัวผมเองเป็นลำดับแรก ผมชื่อจิรวิทย์ แม้ประสาท ตำแหน่งในอินเทลปัจจุบันคือ Strategic Enablement Manager ภายใต้หน่วยงาน Intel Software and Service Group เป็นหน่วยงานที่มุ่งเน้นกิจกรรมที่เกี่ยวข้องกับเทคโนโลยีทางด้านซอฟท์แวร์ครับ เพราะการพัฒนาด้านไอทีจำเป็นต้องพัฒนาด้านฮาร์ดแวร์และซอฟท์แวร์ไปในเวลาเดียวกันครับ

 

@NarisaCom : เนื่องจากพอพูดถึงผู้นำด้านตลาดในส่วน Micro Processor เราก็นึกถึงบริษัทอินเทล และเทคโนโลยีใหม่ ๆ ด้าน Micro Processor ที่ทาง Intel ได้นำเสนอให้เราได้ติดตามมาโดยตลอด ไม่ทราบว่าขณะนี้ แนวโน้มของตลาด processor จะเป็นอย่างไรบ้างครับ

คุณจิรวิทย์ : แนวโน้มการพัฒนาด้านเทคโนโลยี Micro Processor ยังคงมีเป้าหมายหลักคือ ความสามารถในการประมวลผลที่รวดเร็วขึ้น (Performance) ควบคู่ไปกับการใช้พลังงานที่ลดลง (Power Consumption) โดยใช้สถาปัตยกรรมแบบ multi-core และกระบวนการผลิตแบบ Nano Technology ครับ ถ้ามองย้อนไปในอดีตช่วง 10 กว่าปีที่ผ่านมา การเพิ่มประสิทธิภาพของซีพียู เกิดจากการเพิ่ม clock speed เพียงอย่างเดียว จากหน่วยกิโลเฮิร์ต เข้าสู่ระดับกิกะเฮิร์ต และก็ถึงจุดสูงสุดที่ความเร็วระดับเกือบ 4 กิกะเฮิร์ต แนวทางใหม่เรื่องการเปลี่ยนแปลงสถาปัตยกรรมจาก Single-core สู่ Multi-core processor จึงเป็นทางเลือกหลักในการเพิ่มพลังการประมวลผลได้โดยสิ้นเปลืองพลังงานให้ลดลง หรืออธิบายให้ง่ายขึ้นก็คือ เราลดความเร็ว clock speed เพื่อให้การใช้พลังงานลดลง แล้วเพิ่มจำนวน processor เพื่อเพิ่มความเร็วการประมวลผลครับ ในวันนี้เราเห็นซีพียูแบบ Dual-core, Quad-core เป็นเทคโนโลยีราคาที่ไม่แพง ประมาณต้นปี 2010 เราจะเห็นซีพียูแบบ 8 core พร้อมเทคโนโลยี Hyper Threading บนเครื่องเซิร์ฟเวอร์ระดับเอนเตอร์ไพร์ส (MP Server แบบ 4-ways) นั่นหมายความว่า ในเครื่องรุ่นดังกล่าว รองรับ processor ได้สูงสุด 32 cores และมี 64 threads นอกจากนี้อินเทลได้ทำการวิจัยโครงการ Tera-scale Computing โดยมีซีพียูแบบ 80 cores ที่ทำงานได้จริง นั่นหมายความว่า ในอนาคตเราจะเห็นเซิร์พเวอร์หนึ่งเครื่องที่ตั้งข้างโต๊ะทำงานคุณ แต่มีพลังการคำนวณเทียบได้กับศูนย์คอมพิวเตอร์ขนาดใหญ่ๆ ในอดีต ประโยชน์คือ พื้นที่และพลังงานที่ลดลงอย่างมากครับ

 

@NarisaCom : ทำไม Parallel Programming จึงเข้ามามีความสำคัญมากขึ้น และเป็นสิ่งที่ Developer ควรให้ความสนใจครับ

คุณจิรวิทย์ : จากการพูดคุย และแลกเปลี่ยนจากผู้บริหารบริษัทซอฟท์แวร์ในประเทศ ประเด็นที่น่าสนใจที่สุดอยู่ตรงนี้ครับ ผู้บริหารเหล่านี้เชื่อว่า หากแอพพลิเคชั่นที่จำหน่ายในปัจจุบันรองรับการทำงานแบบ Concurrency กับฮาร์ดแวร์แบบใหม่ จะทำให้บริษัทมีโซลูชั่นที่ได้เปรียบเหนือคู่แข่งครับ โดยการใส่ฟังก์ชั่นหรือฟีเจอร์การทำงานแบบใหม่เพิ่มมากขึ้น หรือสร้าง innovation ให้กับโปรแกรม เพราะที่ผ่านมาหลายบริษัทก็มีข้อจำกัดจากโครงสร้างโปรแกรมที่เขียนแบบ Serial Programming ไม่สามารถใช้ประโยชน์จากฮาร์ดแวร์แบบ Multi-core ไม่มากพอ ตัวอย่างความสำเร็จของบริษัทที่ได้เริ่มต้นนำเทคนิคใหม่นี้ไปพัฒนากับซอฟต์แวร์ที่มีอยู่ ผลลัพท์ที่ดีขึ้นกว่าเดิมถึง 2000% หรือเพิ่มขึ้น 20x ตัวชี้วัดความเร็วหรือ delta improvement เราสามารถเลือกได้ว่า เราสนใจที่จะปรับปรุงเรื่อง Response Time, Transaction per Second, Workload, CPU Utilization หรือนับจาก Concurrent users ที่เพิ่มขึ้นจากการปรับโค้ดแบบ Concurrency การเลือกตัวชี้วัดขึ้นอยู่กับทีมพัฒนาว่า ต้องการแก้ไขปรับปรุงในเรื่องใดเป็นลำดับก่อนหลังครับ สิ่งที่นักพัฒนาซอฟท์แวร์ ไม่ว่าระดับผู้บริหาร หรือ software engineer ควรเริ่มต้นในการเรียนรู้ และทำความรู้จักแนวโน้มการเปลี่ยนแปลงนี้ครับ การเปลี่ยนแปลงฮาร์ดแวร์จาก single-core ไปยัง multi-core เป็นแบบทางเดียว และไม่มีย้อนกลับครับ นับวันจำนวน processor core จะเพิ่มขึ้นเรื่อยๆ อุตสาหกรรมซอฟท์แวร์จากเดิมที่ได้ประโยชน์จากการเพิ่มขึ้นของ clock speed นับต่อจากนี้ไปก็ไม่มีอีกแล้ว เทรนด์การทำ Parallel Programming หรือ Concurrency ก็มีความจำเป็น ตัวอย่างเช่น ในปีหน้าเราจะเห็น framework ใหม่ที่สนับสนุนการเขียนโปรแกรมแบบ Concurrency มากขึ้น เช่นในปี 2010 ไมโครซอฟท์เตรียมออก .NET Framework 4.0 และ Visual Studio 10 โดยเพิ่มความสามารถการทำ Concurrency ครับ

 

@NarisaCom : ปัจจุบันมี application และ จำนวนของ developer ที่ชำนาญเรื่องการนำประสิทธิภาพของ multi-core มาออกมาใช้นั้น เพียงพอหรือไม่ครับ

คุณจิรวิทย์ : ในภาคการศึกษาตอนนี้ตื่นตัวมากครับ นักศึกษาเลือกลงวิชาที่เกี่ยวข้องกับ software architect กันมากขึ้น เพราะเป็นความรู้ใหม่ และตัวนักศึกษาเองก็ต้องการสร้างความแตกต่างด้วยการเข้าใจด้านไอทีใหม่ๆ ครับ ในภาคอุตสาหกรรมถือว่า เป็นจุดเริ่มต้นที่ดี เพราะกลุ่มบริษัทซอฟท์แวร์หลายที่ก็มีความเห็นสอดคล้องกับทิศทางของเทคโนโลยีใหม่นี้ รวมถึงเห็นโอกาสในการสร้างความได้เปรียบเหนือคู่แข่งจากการทำงานเร็วขึ้นเป็นเท่าตัว และที่สำคัญหลายบริษัทเข้าใจเป็นอย่างดีว่า เริ่มต้นลงมือแก้ไขปรับปรุงในช่วงของการพัฒนา (development cycle) ดีกว่าไปตามแก้ไขเรื่องของ performance issue ให้กับลูกค้าที่ติดตั้งและใช้งานระบบแล้ว ที่เป็นงานที่ลำบากกว่ากันมากครับ

 

@NarisaCom :  มีอะไรบ้างที่ทาง Intel ได้ทำเพื่อตอบสนองแนวโน้มของ Parallel Processing ที่เพิ่มขึ้น ทั้งในด้าน Software Technology , เครื่องมือ , โครงการ และข้อมูลต่าง ๆ 

คุณจิรวิทย์ : การทำ Parallel Processing ในปัจจุบันเป็นเรื่องที่ง่ายขึ้นครับ เนื่องจากมีชุดเครื่องมือสนับสนุนการทำงานครับ หากมีชุดเครื่องมือ บวกกับทักษะการเขียนโปรแกรมแบบ Parallel หรือ Multi-thread Programming ใช้เวลาไม่เกิน 1-2 ชั่วโมงครับ คำแนะนำจากอินเทลสำหรับบริษัทที่มีซอฟท์แวร์อยู่แล้ว คือพัฒนาจากซอฟท์แวร์ที่มีอยู่แล้ว ไม่ต้องเริ่มพัฒนาใหม่เพราะปัจจุบันเรามีชุดเครื่องมือที่ดีขึ้น ขั้นตอนแบ่งเป็นงานสองส่วนครับ เริ่มต้นที่การวิเคราะห์ปัญหาว่า โค้ดในปัจจุบัน ตรงไหนเป็น Hotspot ที่น่าจะปรับเป็น parallel code ได้ ชุดเครื่องมือที่ใช้มีเยอะครับ แต่ ISV บ้านเราอาจยังไม่เข้าถึงแหล่งข้อมูลเหล่านี้ อินเทลเรามี software tools คือ Intel Parallel Studio ที่ address ปัญหานี้ และรองรับภาษาอื่นเช่น Java, C, C++, C# (Visual Studio) ขั้นตอนที่สองคือ การมีทักษะในการปรับโค้ดที่เป็น Hotspot ให้เป็น multi-thread ตรงนี้ขึ้นกับความถนัดของทีมพัฒนาว่าจะใช้ Windows Thread ที่เป็นระดับง่ายที่สุด, OpenMP ที่มีประสิทธิภาพดีขึ้น และลำดับสุดท้ายคือ กลุ่มของ managed code ที่ใช้ C/C++ อินเทลก็มีเครื่องมือเพิ่มเติมคือ Thread Profiler, Thread Checker

 

@NarisaCom : สำหรับ Developer ที่สนใจ จะเข้าถึงข้อมูลเหล่านั้นได้อย่างไรครับ

คุณจิรวิทย์ : แบ่งเป็นสองส่วนครับ หากเป็นนักพัฒนาที่ทำงานในบริษัทผลิตซอฟท์แวร์ เช่น ISVs, SI, Service Provider ผมแนะนำให้ไปที่โครงการพาร์ทเนอร์โปรแกรมครับ (go to Intel Software Partner Program)
หากเป็นนักพัฒนาอิสระ, นักพัฒนาในแผนกไอทีองค์กรทั่วไปที่ไม่ใช่บริษัทผลิตซอฟท์แวร์ ISVs และบุคคลที่สนใจ สามารถเข้าร่วมโครงการสำหรับนักพัฒนา (go to Intel Software Network)

 

@NarisaCom : สำหรับ Developers ที่สนใจเรื่อง Parallel Processing ต้องมีความรู้ หรือต้องเตรียมตัวศึกษาเรื่องอะไรบ้าง และจะศึกษาได้จากที่ไหนบ้างทั้งที่เป็น Online และสื่ออื่นๆ ได้อย่างไร

คุณจิรวิทย์ : ข้อมูลการอบรมแบบออนไลน์, blog รวมถึงการดาวน์โหลดชุดเครื่องมือ การแก้ไขปัญหาผ่านออนไลน์คอมมูนิตี้ สามารถไปได้ทั้งสองที่คือ เวปไซต์ Intel Software Partner Program (มีเจ้าหน้าที่ Helpdesk ให้การสนับสนุน) และที่ Intel Software Network
นอกจากนี้ยังมี online resources อื่นๆที่น่าสนใจ เช่นที่ CNET Network (การอบรมออนไลน์) และที่ go-Parellel.com

 

@NarisaCom : ในประเทศไทยนั้น อินเทล มีกิจกรรมและโครงการอะไรบ้างครับ ที่จะช่วยส่งเสริมให้ developer ในบ้านเรามีความเข้าใจและชำนาญเรื่อง Parallel Programming มากขึ้น

คุณจิรวิทย์ : การให้การฝึกอบรมเป็นเรื่องที่สำคัญครับ อินเทลได้รับความร่วมมือกับสถาบันการศึกษา และซอฟท์แวร์พาร์คประเทศไทยในการจัดการอบรมทุกไตรมาส ไม่ว่าในรูปแบบการอบรมกับผู้เชี่ยวชาญจากอินเทล หรือการจัดสัมมนาแบบ workshop เพื่อให้ผู้รับการอบรมนำกลับไปทำงานได้จริง ครั้งหน้าเรากำหนดไว้ช่วงปลายเดือนมิถุนายน ที่อาคารซอฟท์แวร์พาร์ค ครั้งนี้เราจะประชาสัมพันธ์งาน และมีกิจกรรมร่วมกันกับทาง Narisa.com ด้วยครับ

 

@NarisaCom : และสุดท้าย คุณจิรวิทย์ คิดว่าหากจะเริ่มศึกษาตั้งแต่วันนี้ ควรเริ่มจากช่องทางใดบ้างครับ

คุณจิรวิทย์ : ครับ เริ่มต้นด้วยการเรียนรู้ผ่านช่องทางต่างๆ ที่อินเทลได้เตรียมจัดไว้ ทั้งการอบรมผ่านระบบออนไลน์, แลกเปลี่ยน และศึกษาจาก online resource เพื่อเตรียมความพร้อม ที่สำคัญคือ ลองคิดดูว่า หากเราทำการ optimize ได้ดีขึ้น คุณต้องการพัฒนาฟีเจอร์ หรือนวัตกรรมใหม่ให้กับซอฟท์แวร์อย่างไร เพราะนั่นคือ เป้าหมายสูงสุดของการพัฒนาซอฟท์แวร์ครับ

 

@NarisaCom : ขอบคุณ คุณจิรวิทย์ มากครับ ที่สละเวลามาเล่า และนำความรู้หลายอย่างมาฝากกับเพื่อนๆ ที่ Narisa.com ในวันนี้

คุณจิรวิทย์ : ขอบคุณเช่นกันครับ

 

กิจกรรมร่วมระหว่าง บริษัท อินเทล ประเทศไทย  และ Narisa.com

สำหรับเพื่อน ๆ ที่เริ่มสนใจใน parallel-programming และสนใจว่า กิจกรรมที่ Narisa.com ได้มีร่วมกับ Intel มีอะไรบ้าง ผมขอสรุปเป็นดังนี้นะครับ

1. เรื่อง training ซึ่งจะมีการจัด Technical training ในวันพฤหัสบดีที่ 25 มิถุนายน 2552 ( Thursday 25 June 2009 ) ซึ่ง Narisa.com ได้ที่นั่งมา 2 ที่นั่งครับ หากเพื่อน ๆ ท่านในสนใจกรุณาส่ง PM มาที่คุณ Kouprex  โดยแจ้งว่า " ต้องการเข้าร่วมการอบรมกับ Intel " นะครับ โดยมีกติกาเบื้องต้นดังนี้
1.1. ให้สิทธิกับ Topgun และ Star ก่อน
1.2. ภายในวันที่พุธที่ 18 มิถุนายน 2552 หากไม่มี Topgun และ star แสดงความจำนงมาหรือส่งมาแล้วแต่ขอสละสิทธิ หรือไม่สามารถเข้าร่วมได้ เราขอให้สิทธิกับเพื่อน ๆ ท่านอื่นที่ส่ง PM มาก่อน ที่ kouprex
1.3. และที่สำคัญ หลังจาก Training แล้ว ต้องมี blog หรือบทความกล่าวถึงสิ่งทีได้รับจากการ training ที่มีความยาวไม่น้อยกว่า 1 หน้า A4

หัวข้อรายละเอียดของการ Training สามารถดูรายละเอียดได้จาก Narisa.com Event calendar งานอบรมนี้ผู้เข้าอบรมจะได้มีโอกาสเจอกับคุณ Milind Hanchinmani ซึ่งปัจจุบัจทำงานเป็น Engineering Manager ที่ Intel Software and Service Group/DRD-APAC ซึ่งคุณ Milind Hanchinmani  ก็มีประสบการณ์ที่เกี่ยวข้องกับเรื่องนี้มากว่า 14 ปีซึ่งเป็นโอกาสที่น่าสนใจทีเดียวครับ

2. และของเล่น ๆ เล็ก ๆ น้อย ๆ จากทาง Intel สำหรับเพื่อน ๆ ที่ register ที่  " http://www.intel.com/partner/ "  และได้แจ้ง ทาง PM กับ Kouprex ว่า “ ได้สมัคร Intel Software Partner Program ที่ www.intel.com/partner  แล้วครับ “ สำหรับของที่เราพูดถึงน่าตาจะเป็นดังด้านล่างครับ ซึ่งจะมีทั้งหมดจำนวน 10 ชิ้นครับ หน้าตาเป็นดังนี้ครับ

และก็เช่นเดียวกัน First-come, First-served ท่านใดสมัครแล้วและได้แจ้งชื่อ ทาง Narisa.com จะได้รับการติดต่อกลับ เพื่อขอรายละเอียดเพิ่มเติมในการจัดส่งของต่อไปครับ


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

หากเพื่อนๆ ท่านใดอยากให้ทางทีมงานสัมภาษณ์สมาชิกท่านใด ท่านสามารถส่ง PM มาทางคุณ Kouprex หรือจะ post ไว้ที่ Narisa Feedback Forum ก็ได้เช่นกันครับ

ขอบคุณครับ

Last Updated on Friday, 07 May 2010 22:16
 
 
Joomla 1.5 Templates by Joomlashack