เกริ่น

CPU คุณมีกี่ Core ครับ? ใครตอบต่ำกว่าสองคอร์ถือว่าตกเทรนด์ครับเพราะเดี๋ยวนี้เราต้องมีหลายๆคอร์และจากการ ทำนายแล้วในอีกสองปีเราจะมี CPU ที่มี 32 คอร์ออกมาให้เล่น

ทำไมต้องมีคอร์เยอะๆ คำตอบสามารถถามได้จากเพื่อที่เรียนคอม เพราะมันเป็นเรื่องคลาสสิค นั่นคือหลักการของมัวร์ นายมัร์กล่าวไว้ว่า

กฎของมัวร์ กล่าวไว้ว่า "คอมพิวเตอร์จะมีความเร็วเพิ่มขึ้นเป็นสองเท่า ทุก ๆ 18 เดือน โดยที่มีราคาคงเดิม" แต่ผู้เชี่ยวชาญในด้านนี้แตกต่างกันค่อนข้างมากครับ เพราะเป็นเรื่องของการทำนายอนาคต ผู้เชี่ยวชาญหลายท่านและ Dr. Moore เองก็คิดว่า กฎนี้น่าจะไปเจอทางตันที่ประมาณปี 2020

เพราะอย่าลืมว่าเราจะทำ ทรานซิสเตอร์ให้มันเล็กลงไปได้มากขนาดไหนกันละ? ดังนั้นหนึ่งในทางออกคือเพิ่มคอร์เข้าไป แทนที่จะเพิ่มความเร็วให้คอร์เดียว ก็ใส่คอร์ไปเยอะๆแต่ความเร็วของแต่ละคอร์ลดลงอันนี้เอามาจาก (http://softwareblogs.intel.com/2007/03/14/the-multi-core-dilemma-by-patrick-leonard/)

นั่นคือสิ่งที่จะเกิดกับเราและเราหนีไม่พ้น สิ่งที่จะกระทบกับกรรมกรไซเบอร์อย่างเราคือ การเขียนโปรแกรมแบบเดิมๆ จะทำให้ แอพพลิเคชั่นของเราช้าลง (กรำแท้ๆ) เนื่องจากภาษาที่เราใช้อยู่นั้นไมได้ออกแบบมาให้ทำงานบนสถาปัตยกรรมหลายคอร์แล้วเราจะทำอย่างไรดีกับการเปลี่ยนแปลงที่กำลังเยื้อย่างเข้ามาเราอีกครั้ง

ทางเลือกแรก

ภาษาใหม่เท่านั้นที่เราต้องเตรียมตัวไว้ ไม่มีทางเลือก ภาษาที่ถูกออกแบบมาให้ทำงานบนโลกหลายคอร์นั้นตอนนี้ที่ ดังๆมีสองภาษาคือ Erlang และ Scala ครับผมเองรู้จักคำว่า Erlang มาประมาณหนึ่งปีที่แล้วจากพี่ป๊อกเจ้าพ่อเด็กแนวส่วน Scala นั้นก็เพิ่งรู้จักเมื่อหกเดือนที่แล้วจากพี่ป๊อกอีกนั่นแหละ

ทั้งสองภาษานี้เป็นภาษาแห่งอนาคตครับ Scala เองเป็นภาษาที่ถูกเรียกว่าเป็นผู้สืบทอดแห่ง JVM หลายคนฟันธงว่ามันจะมาแทน Java และตัวมันเองถูกสร้างมาด้วยการเอาแนวคิดเรื่อง Object Oriented Programming มาผสมเข้ากับ Functional Programming ได้อย่างสวยงาม

ในทางกลับกัน Erlang เกิดขึ้นมาโดยบริษัท Ericsson โดยมันถูกออกแบบมาให้รับมือกับงานประเภท distributed, fault-tolerant, soft-real-time, non-stop applications แต่แตกต่างตรงที่มันเป็น Functional Programming

ทางเลือกที่สอง

ภาษาเก่าสิ่งที่เราต้องทำคือลุ้นว่าจะมีคน port ภาษาที่เราใช้อยู่ให้มันสามารถทำงานได้ดีบนโลกหลายคอร์ได้หรือไม่ เรามาดูกันทีละภาษา

Ruby เท่าที่เห้นว่าจะเป็นไปได้มากที่สุดคือ Rubinius ที่ประกาศว่าจะสร้าง VM สำหรับ Ruby ที่สามารถทำ  rich, high-performance environment for running Ruby code ที่เหลือดูจะยังไม่เป็นเรื่องเท่าไหร่

Python มี thread อยู่แล้วแต่ thread ใน python เป็น user thread ดังนั้นจะไม่สามารถแตก thread ข้ามคอร์ได้

Java มีอยู่แล้วสบายด้วย

C# ไม่ขอเอ่ยเพราะไม่รู้เรื่อง

จบเท่านี้ครับ

 

 

 

edit @ 24 Jun 2008 15:45:54 by cyber-climber

Comment

Comment:

Tweet

รออ่านอยู่นะครับ big smile

#3 By infected on 2008-06-25 18:35

เดี๋ยวเขียนต่อ เพราะเจ้านายมาsad smile

#2 By Rational Roof on 2008-06-25 05:33

จบดื้อๆ เงี้ยอะนะ sad smile

#1 By dog mulder on 2008-06-24 21:36