High Performance Computing

เดวิด เคิร์ค (David Kirk) หัวหน้านักวิทยาศาสตร์ของ NVIDIA Corporation บริษัทผู้ผลิตหน่วยประมวลผลกราฟฟิกส์รายใหญ่ได้กล่าวว่า "การประมวลผลแบบขนานกำลังมีบทบาทสำคัญยิ่งในยุคนี้" โดยโปรเซสเซอร์ประเภท GPU และ multi-core เป็นเทคโนโลยีที่ต้องการการพัฒนาโปรแกรมให้สามารถประมวลผลแบบขนาน แม้ว่าเราจะสามารถเป็นเจ้าของคอมพิวเตอร์แบบ multi-core ได้แล้วก็ตามที แต่โปรแกรมหลายตัวที่ถูกพัฒนาขึ้นมายังไม่สามารถใช้สมรรถนะจาก multi-core ได้เต็มที่เนื่องจากโปรแกรมยังขาดความสามารถในการทำงานแบบขนานนั่นเอง

เคิร์คได้เล่าว่าหากเรามองย้อนไปเมื่อ 20 ถึง 30 ปีก่อน นักพัฒนาซอฟต์แวร์ไม่มีความจำเป็นต้องศึกษาวิธีการพัฒนาโปรแกรมแบบขนานเพราะในสมัยนั้นเราใช้ความสามารถของความเร็วสัญญาณนาฬิกาของโปรเซสเซอร์ที่สูงขึ้นเรื่อยๆ แต่ปัจจุบันนี้ ผู้ผลิตโปรเซสเซอร์ต่างมุ่งเน้นการออกแบบโปรเซสเซอร์multi-core ซึ่งการประมวลผลแบบขนานกลายเป็นสมมติฐานเบื้องต้นของการออกแบบซอฟต์แวร์ไปด้วย เคิร์กจึงสรุปว่า ถึงเวลาแล้วที่เราจะต้องให้การศึกษาแก่นักพัฒนาโปรแกรมให้เข้าใจหลักการพัฒนาโปรแกรมเพื่อการประมวลผลแบบขนานได้

ที่มา - Nikkei Electronics Asia รายละเอียดของข่าวยาวและก็น่าสนใจมาก

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

HudchewMan Sat, 23/08/2008 - 18:51

ถึงยุคที่การประมวลผลแบบขนานเป็น "ส่ิง" จำเป็น
ถึงยุคที่การประมวลผลแบบขนานเป็น "สิ่ง" จำเป็น

ความสามารถของความเร็ว "สัญญา" นาฬิกา
ความสามารถของความเร็ว "สัญญาณ" นาฬิกา

:)

เว็บพจนานุกรม แปลภาษาจีน-ไทย ไทย-จีน
http://www.zhongtai.org

ช่วงนี้ผมกำลังศึกษาเรื่องนี้อยู่พอดีครับ หากให้ผมประเมิน ผมคิดว่าตอนนี้ทั้ง GPU และ multi-cores ยังไม่พร้อมทั้งคู้ครับ คงต้องรอไปสักพักก่อน

เท่าที่ทดสอบ GPU มีปัญหาสามอย่างคือ

1 การส่งข้อมูลไปมาระหว่าง CPU และ GPU บางครั้งการส่งข้อมูลใช้เวลาเยอะกว่าการะประมวลผลด้วยซ้ำ

2 คำนวนแบบ recursive ไม่ได้ เช่น y[n] =x[n]+y[n-1]

3 ตอนนี้มีเพียง CUDA เท่านั้นที่ถูกใช้ในการคำนวนแบบ GPU แต่ CUDA มันมีปัญหากับตัวแปรที่เป็น double precision พอสมควร

ซึ่งปัญหาที่ว่ามาไม่ใช่ปัญหาใหญ่ในงานพวก image processing แต่งานอื่น ๆ อย่างน้อยก็งานที่ผมทำอยู่ ปัญหาที่ว่ามา ทำให้การใช้ GPU ไม่เร็วอย่างที่คิด

ส่วน multi-cores นั้น เน้นการทำงานที่เป็น multi-processing หรือ multi-threading มากกว่า มันไม่ได้คำนวนแบบ vector แบบ GPU

BioLawCom.De

shikima Sat, 23/08/2008 - 19:14

ผมว่ายังไง Compiler ต้องฉลาดพอด้วยอ่ะ

P1 : a=1
P2 : a+c
P3 : c=1

ยังไง P3 ก็ต้องรอ P2 เสร็จล่ะครับ

CMDEVHUB

เขียนเอามันส์ ลองเข้าไปดูความมันส์ได้ครับ

javaboom Sat, 23/08/2008 - 20:41

In reply to by shikima

ครับ อีกวิธีหนึ่งของการประมวลผลแบบขนานคือพึ่ง compiler ที่ฉลาดครับ เช่นยัดเยียดให้เกิดการประมวลผลแบบขนานตั้งแต่ระดับคำสั่งหรือ Instruction Level Parallelism (ILP) สำหรับระดับ circuit หรือ processor เองก็ทำได้อย่างที่คุณ bow_der_kleine อ้างถึง vector processing รวมไปถึง SIMD

Sivadon Chaisiri (JavaBoom)
http://javaboom.wordpress.com

tekkasit Sat, 23/08/2008 - 19:47

บางที ข้อจำกัดอยู่ที่วิธีการคิดของมนุษย์ทั่วๆไป
ผมว่าคนเราคิดแบบเชิงเส้น จึงไม่น่าแปลกใจที่ภาษาโปรแกรมมิ่ง จะได้ออกมาอย่างนั้น

อย่าลืมนะครับ ถ้ามันยากเกินไป ถึงมนุษย์จะเขียนขึ้นมาได้ แต่มนุษย์เองก็จะสามารถไม่แม้แต่จะดีบักมัน

javaboom Sat, 23/08/2008 - 20:41

In reply to by tekkasit

ใช่ครับ การดีบั๊ก parallel app มันยากมากๆ ผมเลยอยากทราบว่า Intel Parallel Studio ในส่วนของ Parallel Inspector มันทำได้เยี่ยมแค่ไหน มองโลกแง่ดีผมว่ามันต้องมีจุดเริ่มต้นของยุคสมัยบ้างแหละครับ อย่างน้อยที่สุดก็เริ่มจาก data parallel หรือ embarassingly parallel ก็ยังดีครับ แฮๆๆ :)

Sivadon Chaisiri (JavaBoom)
http://javaboom.wordpress.com

rerngrit Sun, 24/08/2008 - 00:36

ผมจำได้สมัยเรียนที่ภาคพิเศษที่ ม.บูรพา ช่วงปี 44-45
อ.ภุชงค์ไปบรรยาย แล้วก็มีประโยคเด็ดว่า "dubuging pararell program is hell"
ยังฮาไม่เลิก ถ้าอ่านเจอ กราบสวัสดีด้วยครับ :)

Rerng®IT

runnary Sun, 24/08/2008 - 03:07

ขั้นเทพคุยกานผมไม่รู้เรื่องอะ ขออ่านผ่านตาแล้วกันครับ

invisibleMind Mon, 25/08/2008 - 09:35

การประมวลผลแบบขนาน มันน่าที่จะเป็นหน้าที่ของ OS. หน้าที่ของโปรแกรมเมอร์ ควรจะมีหน้าที่เพียงออกแบบ และกำหนด logic การทำงานแค่นั้นนะครับ

เห็นด้วยครับว่า ถ้า OS ทำให้ได้ก็คงเป็นเรื่องดีมากๆ ถือว่าเป็นงานวิจัยที่ยากมากๆในฟิลด์ HPC เลยแหละครับที่จะทำให้ parallelism ถูกซ่อนไปจากโปรแกรมเมอร์ให้มากที่สุดหรือการแปลงโปรแกรมแบบ sequential ให้เป็น parallel โดยอัตโนมัติ มันเป็นศาสตร์ AI แฝงมาด้วยน่ะครับ เพราะ OS จะรู้ได้อย่างไรว่าโปรแกรม single thread ที่กำลังจะรันต้องถูกแบ่งเป็นกี่ thread และแต่ละ thread จะพูดคุยกันอย่างไร

ตอนนี้ทำได้แค่ระดับ ILP - VLWI แต่ก็พึ่งพา Processor และ Compiler เป็นหลักครับ

จะเห็นได้ว่า Intel พยายามส่งเสริมให้โปรแกรมเมอร์หันมาให้ความสำคัญกับการเขียนโปแกรมแบบแบ่ง thread หรือ concurrency มากขึ้น อย่างเว็บ go-parallel.com

จากไอเดียของคุณเป็นเรื่องที่ดีมากๆ มีงานวิจัยบางงานใช้หลักการ Workflow เพื่อให้โปรแกรมเมอร์หรือ SA กำหนด logic ของโปรแกรมหรือแม้แต่ใช้ UML เข้ามาออกแบบร่วม และจากนั้นก็ให้ compiler แปลงโค้ดพร้อมกับ workflow ให้เป็นโปรแกรมแบบขนานครับ

Sivadon Chaisiri (JavaBoom)
http://javaboom.wordpress.com

lew Mon, 25/08/2008 - 11:23

In reply to by javaboom

มีหลายๆ อย่างที่ต้านการเปลี่ยนแปลงจากฝั่งผู้ใช้เหมือนกันนะครับ

ที่ผมเคยเจอก็พวก Lazy Compute ที่อธิบายผู้ใช้ค่อนข้างยากว่าตัวเลขสถิติบางตัวในระบบอาจจะช้ากว่าข้อมูลจริงไปครึ่งวินาที คำถามที่เจอมักจะเป็นประเภทว่า "ทำให้มันพร้อมกันไม่ได้เหรอ?" และสุดท้ายเงื่อนไขพวกนี้กลับไปทำลาย parallelism ของตัวโปรแกรมเอง

LewCPE

javaboom Mon, 25/08/2008 - 13:18

In reply to by lew

เห็นด้วยอย่างยิ่งครับ มันเป็น paradigm shift ทำให้คนยากจะเปลี่ยนใจครับ พอๆกับสะใภ้ใหม่จำใจต้องอยู่กับแม่ย่า ดังนั้น นักพัฒนา/อาจารย์/นักวิจัยจึงต้องทำงานหนักครับ มันจะมี 3 สายก็คือ 1. การให้การศึกษาให้คนเข้าใจวิธีเขียนโปรแกรมแบบขนาน (ยากในเชิงปฎิบัติ) 2. พัฒนาเฟรมเวิร์คที่สนับสนุนการเขียนโปรแกรมแบบขนานให้ง่าย (ลดความยากลง แต่ยังต้องเข้าใจหลักการบางอย่างอยู่) ท้ายที่สุดต้องพึ่งข้อ 1 อยู่ดี 3. พัฒนาซอฟต์แวร์/ฮาร์ดแวร์ ให้แปลงโปรแกรมโดยอัตโนมัติเพื่อใช้ความสามารถของโปรเซสเซอร์ได้เต็มที่ เช่น แปลงโปรแกรมแบบ sequential ให้เป็น parallel โดยอัตโนมัติ เป็นต้น (โปรแกรมเมอร์สบาย แต่นักวิจัยทำงานหนัก)

ผมเชื่อในโลกเรายังมีโดเรมอนครับ (หมายถึง มีวิวัฒนาการที่ก้าวหน้าขึ้นไป) ดังนั้น ทุกอย่างเป็นไปได้แต่ต้องใช้เวลา

Sivadon Chaisiri (JavaBoom) http://javaboom.wordpress.com