เพิ่งรู้สึกว่าได้หัดเดิน เมื่อได้ journal ตัวแรก

เมื่อวันเสาร์ที่ผ่านมา ผมได้รับข่าวดีจาก IEEE ว่า เปเปอร์ที่ผมส่งไปเมื่อต้นปีก่อนได้รับการตอบรับหรือ accept เพื่อได้รับการการตีพิมพ์ลง IEEE Transactions on Services Computing ภายใต้หัวข้อผลงานชื่อ “Optimization of Resource Provisioning Cost in Cloud Computing” นับว่าเป็น Journal ตัวแรกของชีวิตเลยแหละ เป็นการรอคอยที่นานเกือบปี แต่ก็คุ้มค่ากับการรอคอย

Continue reading

Advertisements

ซูเปอร์คอมพิวเตอร์เปลี่ยนไปตามสมัย

ผมไม่อยากให้ blog มันเงียบเหงา เลยขออนุญาตคัดลอกเอา comment ที่ผมตอบไว้ในข่าวที่ผมเขียนไว้ใน blognone มาแปะสะสมไว้ในนี้ (ตามชื่อ blog ของผม คือ JavaBoom Collections) หัวข้อข่าวครั้งนี้ คือ ตามคาด! จีนครองแชมป์โลก TOP500 ครั้งที่ 36 รายงานในวันที่ 15 พฤศจิกายน หรือ 14 พฤศจิกายนของฝั่งอเมริกา ซึ่งเป็นวันเดียวกันกับที่งาน SC10 ได้ประกาศผล TOP500 อย่างเป็นทางการ

ผมตัด comment ของคุณ planktons ที่ได้ถามคำถามเกี่ยวกับวงการซูเปอร์คอมในเมืองไทย อย่างไรก็ดี เพื่อเป็นการยิงนก 2 ตัวพร้อมๆกัน ผมเลยตอบคำถามของคุณ planktons แต่ดันสาธยายน้ำท่วมทุ่งถึงเรื่องราวเกี่ยวกับคำนิยามของ “ซูเปอร์คอมพิวเตอร์” (กล่าวคือ ผมตอบเกินคำถาม)  จริงๆมันก็ไม่ใช่นิยามหรอกนะ ผมต้องการบอกว่า คำว่า ซูเปอร์ (super) มันเป็นคำที่ใช้ในการเปรียบเทียบ ดังนั้น สิ่งที่เคยซูเปอร์ย่อมเปลี่ยนแปลงได้ และก็จบท้ายด้วยคำถามอีกคำถามของคุณ planktons เกี่ยวกับโปรเซสเซอร์ Cell … ต้องขอขอบคุณ planktons สำหรับคำถามครั้งนี้ครับผม

รายละเอียดก็แปะไว้ดังนี้

Continue reading

GPU Testbed พลัง Tesla (ภาค 2)

ใน GPU Testbed พลัง Tesla (ภาค 1) ก็ได้แนะนำคลัสเตอร์จีพียูในที่ทำงานของผมไปแล้ว มาครั้งนี้ ขอพูดถึงสเปคเครื่องทั้งระบบว่าเป็นอย่างไร

ก่อนอื่น ขอสรุปข้อมูลของ testbed จากภาค 1 สั้นๆก่อนว่า testbed ประกอบด้วย เซิร์ฟเวอร์ 4 เครื่อง แต่ละเซิร์ฟเวอร์ติดตั้งการด์จีพียู Tesla เข้าไป 2 ใบ ทำให้ทั้งระบบ testbed มีจำนวน Tesla ทั้งหมด 8 ใบ ในเชิงทฤษฎี (หรือ peak performance) รวมพลังประมวลผลแบบ single precision ได้ถึง 7.4 เทราฟลอป หรือ 622 กิกะฟลอปสำหรับ double precision

Continue reading

GPU Testbed พลัง Tesla (ภาค 1)

เพิ่ม GPU Testbed เข้าไปรวมกับ Cloud Computing Testbed

ผมเคยพูดถึง Cloud Computing Testbed ในที่ทำงานของผม ซึ่งผมและเพื่อนของผม (คือ อลัน) ได้ติดตั้งขึ้นมาเพื่อใช้ในงานวิจัยและพัฒนาโซลูชันสำหรับ cloud computing สำหรับครั้งนี้ ผมอยากมาอัพเดตข้อมูลเจ้า testbed ตัวนี้อีกนิดนึงว่า ที่ทำงานผมได้ลงทุนติดตั้งเซิร์ฟเวอร์ของหน่วยประมวลผลกราฟิก (จีพียู – GPU) รุ่น NVIDIA Tesla เข้าไปทั้งหมด 8 การ์ด เข้าไปยังเซิร์ฟเวอร์ของ HP ทั้งหมด 4 เครื่อง (แต่มันถูกแพ็คให้เข้าไปใน rack server 2 เครื่อง งงไหม?) โดยมี Tesla 2 ใบต่อเครื่อง ทำให้ได้จำนวนคอร์รวมกันได้ 1,920 (จีพียู)คอร์ และเราก็เรียกเซิร์ฟเวอร์ชุดนี้ว่า GPU Testbed (หรือ GPU Cluster)

จุดประสงค์ของ testbed ตัวนี้คือ เอาไว้ใช้ในงานวิจัย อย่างการทดลองโมเดลหรืออัลกอริธึมต่างๆที่เกี่ยวกับ GPU รวมถึง Hybrid CPU+GPU และก็เอาไว้พัฒนาซอฟต์แวร์ทั่วไปเพื่อใช้พลังของ GPU โดยการใช้ CUDA และ OpenCL

Continue reading

แนะนำหัวข้อ Project ปี 4 – Linear Programming with CUDA

  • หัวข้อปัญหา – การแก้ปัญหาโปรแกรมเชิงเส้นโดยใช้ความสามารถของโปรเซสเซอร์ประมวลผลกราฟิก
  • อธิบายปัญหาคร่าวๆ – เป็นการพัฒนาซอฟต์แวร์ประเภท optimization solver ให้สามารถแก้ปัญหาโปรแกรมเชิงเส้น (linear programming) โดยใช้สมรรถนะของโปรเซสเซอร์ประมวลผลกราฟิก (หรือ GPU)
  • เครื่องมือในการพัฒนา – CUDA (แนะนำว่าควรใช้ C/C++ binding ของ CUDA เนื่องจากเป็นโค้ดที่เสถียรสุด)
  • ทักษะในการพัฒนา 1. ภาษา C/C++ 2. เข้าใจ simplex method 3. เข้าใจพื้นฐานการพัฒนาโปรแกรมแบบขนาน (parallel programming) อย่างไรก็ตาม ข้อ 2. กับ 3. พัฒนาหรือรื้อฟื้นกันได้
  • งานที่เกี่ยวข้อง – ลองอ่านผลงานชื่อ Linear Programming on modern GPUs อย่างไรก็ดี เราควรหาแนวทางที่แตกต่าง อย่าเช่นเราควรพัฒนา optimization solver ที่สนับสนุนให้ผู้ใข้สามารถแก้ปัญหาโปรแกรมเชิงเส้นด้วยเครื่องมือหรือภาษาทางคณิตศาสตร์ที่ได้รับการยอมรับหรือใช้อย่างกว้างขวาง เช่น MATLAB OCTAVE หรือ GNU MathProg ซึ่งจะทำให้ซอฟต์แวร์ใช้ได้กับปัญหาโปรแกรมเชิงเส้นแบบทั่วไปได้อีกด้วย
  • ตัวอย่างของผลลัพธ์ที่คาดหวัง – ได้ออกมาเป็น optimization solver ที่สามารถแก้ปัญหาเชิงเส้นด้วยการเขียนสคริปต์ของ MathProg ด้วยการใช้ GPU และความเร็วที่ได้ควรเร็วกว่า CPU อย่างมีนัยสำคัญ
  • แนวทางที่พลิกแพลงได้ – ถ้าหากค้นคว้างานที่เกี่ยวข้องเพิ่มเติมเองแล้ว พบว่ามีคนทำไปแล้ว ลองพิจารณาปัญหาประเภท non-linear programming, quadratic programming, และ integer programming ดูก็ได้ งานนี้จึงสามารถพัฒนาแตกแขนงจากรุ่นหนึ่งไปสู่รุ่นหนึ่งได้เรื่อยๆ

โพสต์ครั้งแรกที่ blognone