“ตอบง่ายกว่าเงียบ” - บทสัมภาษณ์ที่ยอดเยี่ยมของ Maurice Herlihy บิดาแห่งความจำในการแลกเปลี่ยน

มอริส เฮอร์ลิฮี - เจ้าของสองคน รางวัลไดจ์คสตรา. อันแรกมีไว้สำหรับการทำงาน "การซิงโครไนซ์โดยไม่ต้องรอ" (มหาวิทยาลัยบราวน์) และประการที่สองล่าสุด - "หน่วยความจำธุรกรรม: การสนับสนุนทางสถาปัตยกรรมสำหรับโครงสร้างข้อมูลที่ปราศจากการล็อค" (มหาวิทยาลัยเวอร์จิเนียเทค). รางวัล Dijkstra มอบให้กับผลงานที่มองเห็นความสำคัญและอิทธิพลมาเป็นเวลาอย่างน้อยสิบปี และเห็นได้ชัดว่า Maurice เป็นหนึ่งในผู้เชี่ยวชาญที่มีชื่อเสียงที่สุดในสาขานี้ ปัจจุบันเขาทำงานเป็นศาสตราจารย์ที่มหาวิทยาลัยบราวน์และมีความสำเร็จมากมายเพียงย่อหน้าเดียว ปัจจุบันเขากำลังค้นคว้าบล็อคเชนในบริบทของการคำนวณแบบกระจายแบบคลาสสิก

ก่อนหน้านี้ มอริซได้มารัสเซียเพื่อเข้าร่วม SPTCC แล้ว (บันทึกวีดีโอ) และจัดการประชุมที่ยอดเยี่ยมของชุมชนนักพัฒนา JUG.ru Java ในเซนต์ปีเตอร์สเบิร์ก (บันทึกวีดีโอ).

ฮาบราโพสต์นี้เป็นบทสัมภาษณ์ที่ยอดเยี่ยมของมอริซ เฮอร์ลิฮี จะกล่าวถึงหัวข้อต่อไปนี้:

  • ปฏิสัมพันธ์ระหว่างนักวิชาการกับอุตสาหกรรม
  • มูลนิธิเพื่อการวิจัยบล็อคเชน
  • แนวคิดที่ก้าวหน้ามาจากไหน? อิทธิพลของความนิยม
  • ปริญญาเอกภายใต้การดูแลของ Barbara Liskov;
  • โลกกำลังรอคอยมัลติคอร์
  • โลกใหม่นำมาซึ่งปัญหาใหม่ NVM, NUMA และการแฮ็กสถาปัตยกรรม
  • คอมไพเลอร์เทียบกับโปรเซสเซอร์ RISC เทียบกับ CISC หน่วยความจำที่ใช้ร่วมกันเทียบกับการส่งข้อความ
  • ศิลปะแห่งการเขียนโค้ดแบบมัลติเธรดที่เปราะบาง
  • วิธีสอนให้นักเรียนเขียนโค้ดแบบมัลติเธรดที่ซับซ้อน
  • หนังสือฉบับใหม่ “The Art of Multiprocessor Programming”;
  • หน่วยความจำแบบทรานแซคชันถูกประดิษฐ์ขึ้นอย่างไร   
  • เหตุใดจึงคุ้มค่าที่จะทำการวิจัยในสาขาคอมพิวเตอร์แบบกระจาย
  • การพัฒนาอัลกอริธึมหยุดลงหรือไม่ และจะดำเนินต่อไปอย่างไร
  • ทำงานที่มหาวิทยาลัยบราวน์
  • ความแตกต่างระหว่างการวิจัยในมหาวิทยาลัยและภายในองค์กร
  • ไฮดรา และ SPTDC

การสัมภาษณ์ดำเนินการโดย:

วิตาลี อัคเซนอฟ — ปัจจุบันเป็นนักศึกษาหลังปริญญาเอกที่ IST Austria และพนักงานของ Department of Computer Technologies ที่ ITMO University ดำเนินการวิจัยในสาขาทฤษฎีและการปฏิบัติเกี่ยวกับโครงสร้างข้อมูลการแข่งขัน ก่อนที่จะทำงานที่ IST เขาได้รับปริญญาเอกจาก Paris Diderot University และ ITMO University ภายใต้การดูแลของศาสตราจารย์ Peter Kuznetsov

Alexey Fedorov - โปรดิวเซอร์ที่ JUG Ru Group บริษัทรัสเซียที่จัดการประชุมสำหรับนักพัฒนา Alexey เข้าร่วมในการเตรียมการประชุมมากกว่า 50 ครั้ง และประวัติย่อของเขาครอบคลุมทุกอย่างตั้งแต่ตำแหน่งวิศวกรการพัฒนาที่ Oracle (JCK, Java Platform Group) ไปจนถึงตำแหน่งนักพัฒนาที่ Odnoklassniki

วลาดิมีร์ ซิตนิคอฟ - วิศวกรที่ Netcracker ผลงานสิบปีในด้านประสิทธิภาพและความสามารถในการปรับขนาดของ NetCracker OS ซึ่งเป็นซอฟต์แวร์ที่ผู้ให้บริการโทรคมนาคมใช้เพื่อทำให้กระบวนการจัดการเครือข่ายและอุปกรณ์เครือข่ายเป็นแบบอัตโนมัติ สนใจปัญหาด้านประสิทธิภาพของ Java และ Oracle Database ผู้เขียนการปรับปรุงประสิทธิภาพมากกว่าหนึ่งโหลในไดรเวอร์ PostgreSQL JDBC อย่างเป็นทางการ

ปฏิสัมพันธ์ระหว่างนักวิชาการและอุตสาหกรรม

Alexey: มอริซ คุณทำงานในสภาพแวดล้อมทางวิชาการมาเป็นเวลานานแล้ว และคำถามแรกก็คือปฏิสัมพันธ์ระหว่างแวดวงวิชาการและอุตสาหกรรม คุณช่วยพูดถึงปฏิสัมพันธ์ระหว่างพวกเขาที่เปลี่ยนแปลงไปเมื่อเร็ว ๆ นี้ได้ไหม? เกิดอะไรขึ้นเมื่อ 20-30 ปีที่แล้ว และตอนนี้กำลังเกิดอะไรขึ้น? 

มอริซ: ฉันพยายามทำงานอย่างใกล้ชิดกับบริษัทการค้ามาโดยตลอด เพราะพวกเขามีปัญหาที่น่าสนใจ ตามกฎแล้วพวกเขาไม่สนใจมากนักในการเผยแพร่ผลลัพธ์หรือคำอธิบายโดยละเอียดเกี่ยวกับปัญหาของตนต่อประชาคมโลก พวกเขาสนใจเพียงการแก้ปัญหาเหล่านี้เท่านั้น ฉันทำงานให้กับบริษัทดังกล่าวมาระยะหนึ่งแล้ว ฉันใช้เวลาห้าปีทำงานเต็มเวลาในห้องปฏิบัติการวิจัยที่ Digital Equipment Corporation ซึ่งเคยเป็นบริษัทคอมพิวเตอร์ขนาดใหญ่ ฉันทำงานหนึ่งวันต่อสัปดาห์ที่ Sun ที่ Microsoft ที่ Oracle และทำงานเล็กๆ น้อยๆ ที่ Facebook ตอนนี้ฉันกำลังจะลาพักร้อน (ศาสตราจารย์ในมหาวิทยาลัยในอเมริกาได้รับอนุญาตให้ลาพักร้อนเป็นเวลาหนึ่งปีประมาณหนึ่งครั้งทุกๆ หกปี) และทำงานใน Algorandนี่คือบริษัทสกุลเงินดิจิทัลในบอสตัน การทำงานอย่างใกล้ชิดกับบริษัทต่างๆ เป็นเรื่องน่ายินดีเสมอเพราะนั่นคือวิธีที่คุณจะได้เรียนรู้เกี่ยวกับสิ่งใหม่ๆ ที่น่าสนใจ คุณอาจเป็นคนแรกหรือคนที่สองที่เผยแพร่บทความในหัวข้อที่เลือก แทนที่จะพยายามปรับปรุงวิธีแก้ปัญหาทีละน้อยที่คนอื่นกำลังทำอยู่แล้ว

Alexey: คุณช่วยบอกรายละเอียดเพิ่มเติมหน่อยได้ไหมว่าสิ่งนี้เกิดขึ้นได้อย่างไร?

มอริซ: แน่นอน คุณรู้ไหมว่า ตอนที่ฉันทำงานที่ Digital Equipment Corporation ฉันและ Elliot Moss เราคิดค้นหน่วยความจำเชิงธุรกรรมขึ้นมา เป็นช่วงเวลาที่มีผลอย่างมากเมื่อทุกคนเริ่มสนใจเทคโนโลยีสารสนเทศ ความเท่าเทียมรวมถึงแม้ว่าระบบมัลติคอร์ยังไม่มีอยู่ก็ตาม ในช่วงยุค Sun และ Oracle ฉันทำงานอย่างหนักกับโครงสร้างข้อมูลแบบขนาน ที่ Facebook ฉันทำงานในโครงการบล็อคเชนของพวกเขา ซึ่งฉันไม่สามารถพูดถึงได้ แต่ฉันหวังว่าจะเผยแพร่สู่สาธารณะเร็วๆ นี้ ปีหน้าที่ Algorand ฉันจะทำงานในกลุ่มวิจัยที่กำลังศึกษาสัญญาอัจฉริยะ

Alexey: Blockchain กลายเป็นหัวข้อยอดนิยมในช่วงไม่กี่ปีที่ผ่านมา สิ่งนี้จะช่วยการวิจัยของคุณหรือไม่? บางทีมันอาจช่วยให้ได้รับทุนสนับสนุนหรือให้การเข้าถึงทรัพยากรจากบริษัทที่ดำเนินงานในอุตสาหกรรมได้ง่ายขึ้น

มอริซ: ฉันได้รับทุนเล็กน้อยจากมูลนิธิ Ethereum แล้ว ความนิยมของบล็อกเชนมีประโยชน์มากในการสร้างแรงบันดาลใจให้นักเรียนทำงานในสาขานี้ พวกเขาสนใจเรื่องนี้มากและรู้สึกตื่นเต้นที่จะได้มีส่วนร่วม แต่บางครั้งพวกเขาก็ไม่รู้ว่างานวิจัยภายนอกที่ฟังดูน่าตื่นเต้นกลับกลายเป็นว่าต้องทำงานหนักจริงๆ อย่างไรก็ตาม ฉันตื่นเต้นมากที่ได้ใช้ความลึกลับทั้งหมดนี้เกี่ยวกับบล็อกเชนเพื่อช่วยดึงดูดนักเรียน 

แต่นั่นไม่ใช่ทั้งหมด ฉันอยู่ในคณะกรรมการที่ปรึกษาของบริษัทสตาร์ทอัพบล็อคเชนหลายแห่ง บางคนอาจประสบความสำเร็จ บางคนอาจไม่สำเร็จ แต่การได้เห็นแนวคิด ศึกษา และให้คำแนะนำผู้คนเป็นเรื่องที่น่าสนใจเสมอ สิ่งที่น่าตื่นเต้นที่สุดคือเมื่อคุณเตือนคนอื่นว่าอย่าทำอะไรบางอย่าง หลายๆ อย่างดูเหมือนเป็นความคิดที่ดีในตอนแรก แต่จริงหรือ?

มูลนิธิเพื่อการวิจัยบล็อคเชน

Vitaly: บางคนคิดว่าอนาคตขึ้นอยู่กับบล็อกเชนและอัลกอริธึมของมัน และคนอื่นบอกว่ามันเป็นเพียงฟองสบู่อีกฟองหนึ่ง คุณสามารถแบ่งปันความคิดเห็นของคุณเกี่ยวกับเรื่องนี้ได้หรือไม่?

มอริซ: สิ่งที่เกิดขึ้นมากมายในโลกบล็อกเชนนั้นผิด บางอย่างเป็นเพียงการหลอกลวง และหลายอย่างถูกประเมินเกินจริง อย่างไรก็ตาม ฉันคิดว่ามีพื้นฐานทางวิทยาศาสตร์ที่มั่นคงสำหรับการศึกษาเหล่านี้ ความจริงที่ว่าโลกบล็อคเชนนั้นเต็มไปด้วยความแตกต่างทางอุดมการณ์ แสดงให้เห็นถึงระดับของความตื่นเต้นและความทุ่มเท ในทางกลับกัน สิ่งนี้ไม่เป็นประโยชน์อย่างยิ่งต่อการวิจัยทางวิทยาศาสตร์ ตอนนี้ หากคุณตีพิมพ์บทความที่พูดถึงข้อบกพร่องของอัลกอริธึมเฉพาะ ปฏิกิริยาที่เกิดขึ้นอาจไม่ได้เป็นไปตามหลักวิทยาศาสตร์เสมอไป บ่อยครั้งผู้คนโยนอารมณ์ของตนออกไป ฉันคิดว่าความตื่นเต้นในพื้นที่นี้อาจดูน่าดึงดูดสำหรับบางคน แต่ท้ายที่สุดแล้ว ยังมีประเด็นทางวิทยาศาสตร์และวิศวกรรมที่แท้จริงที่ต้องได้รับการแก้ไข วิทยาการคอมพิวเตอร์ที่นี่มีเยอะมาก

Vitaly: คุณกำลังพยายามวางรากฐานสำหรับการวิจัยบล็อคเชนใช่ไหม?

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

หากผู้คนคิดค้นเทคโนโลยีใหม่ ๆ พวกเขาก็จะเรียกมันว่าบล็อกเชนต่อไป ฉันหมายถึง เช่นเดียวกับภาษา Fortran ในปัจจุบันที่ไม่เกี่ยวข้องกับภาษา Fortran จากทศวรรษ 1960 แต่ทุกคนกลับเรียกมันว่า Fortran เช่นเดียวกับ UNIX สิ่งที่เรียกว่า “บล็อกเชน” จะยังคงทำให้เกิดการปฏิวัติ แต่ฉันสงสัยว่าบล็อคเชนใหม่นี้จะเหมือนกับสิ่งที่ทุกคนชอบใช้ในปัจจุบัน

แนวคิดที่ก้าวหน้ามาจากไหน? ผลกระทบของความนิยม

Alexey: ความนิยมของ blockchain นำไปสู่ผลลัพธ์ใหม่จากมุมมองทางวิทยาศาสตร์หรือไม่? มีปฏิสัมพันธ์มากขึ้น มีนักเรียนมากขึ้น มีบริษัทมากขึ้นในพื้นที่นี้ มีผลจากความนิยมที่เพิ่มขึ้นนี้แล้วหรือยัง?

มอริซ: ฉันเริ่มสนใจเรื่องนี้เมื่อมีคนยื่นใบปลิวอย่างเป็นทางการของบริษัทหนึ่งซึ่งเพิ่งระดมทุนได้ค่อนข้างมากให้ฉัน มันเขียนเกี่ยวกับ ภารกิจของนายพลไบแซนไทน์ซึ่งฉันคุ้นเคยมากกว่า สิ่งที่เขียนในแผ่นพับนั้นไม่ถูกต้องทางเทคนิคอย่างชัดเจน คนที่เขียนทั้งหมดนี้ไม่เข้าใจโมเดลเบื้องหลังปัญหาจริงๆ... แต่บริษัทนี้ก็ระดมเงินได้มากมาย ต่อจากนั้น บริษัท ได้เปลี่ยนแผ่นพับนี้อย่างเงียบ ๆ ด้วยเวอร์ชันที่ถูกต้องมากขึ้น - และฉันจะไม่บอกว่าบริษัทนี้ชื่ออะไร พวกเขายังคงอยู่รอบ ๆ และทำได้ดีมาก เหตุการณ์นี้ทำให้ฉันมั่นใจว่า ประการแรก บล็อกเชนเป็นเพียงรูปแบบหนึ่งของการประมวลผลแบบกระจาย ประการที่สอง เกณฑ์การเข้า (อย่างน้อยก็เมื่อสี่ปีที่แล้ว) ค่อนข้างต่ำ ผู้คนที่ทำงานในสาขานี้มีความกระตือรือร้นและชาญฉลาดมาก แต่พวกเขาไม่ได้อ่านบทความทางวิทยาศาสตร์ พวกเขาพยายามประดิษฐ์สิ่งที่รู้แล้วขึ้นมาใหม่และทำผิด วันนี้ละครเริ่มน้อยลง

Alexey: นี่เป็นเรื่องที่น่าสนใจมาก เพราะไม่กี่ปีที่ผ่านมาเรามีแนวโน้มที่แตกต่างออกไป มันเหมือนกับการพัฒนาส่วนหน้า เมื่อนักพัฒนาส่วนหน้าที่ใช้เบราว์เซอร์คิดค้นเทคโนโลยีทั้งหมดที่ได้รับความนิยมอยู่แล้วในส่วนหลัง: สร้างระบบ การบูรณาการอย่างต่อเนื่อง สิ่งต่างๆ เช่นนั้น 

มอริซ: ฉันเห็นด้วย แต่นี่ก็ไม่น่าแปลกใจ เพราะแนวคิดที่ก้าวหน้าอย่างแท้จริงมักจะมาจากภายนอกชุมชนที่จัดตั้งขึ้น นักวิจัยที่มีชื่อเสียง โดยเฉพาะนักวิชาการที่มีชื่อเสียง ไม่น่าจะทำอะไรที่แหวกแนวได้อย่างแท้จริง เป็นเรื่องง่ายที่จะเขียนบทความสำหรับการประชุมครั้งต่อไปเกี่ยวกับวิธีปรับปรุงผลงานที่ผ่านมาของคุณเล็กน้อย ไปประชุม พบปะกับเพื่อนฝูง พูดคุยเรื่องเดียวกัน และคนที่แสดงไอเดียที่ก้าวล้ำเข้ามามักจะมาจากภายนอกเสมอ พวกเขาไม่รู้กฎเกณฑ์ ไม่รู้ภาษา แต่ถึงกระนั้น... หากคุณอยู่ในชุมชนที่จัดตั้งขึ้น ฉันแนะนำให้คุณใส่ใจกับสิ่งใหม่ๆ ในสิ่งที่ไม่เข้ากับภาพรวม ในแง่หนึ่ง เราสามารถพยายามที่จะรวมการพัฒนาภายนอกที่ลื่นไหลมากขึ้นเข้ากับวิธีการที่เราเข้าใจอยู่แล้ว ในขั้นแรก ให้พยายามสร้างพื้นฐานทางวิทยาศาสตร์ จากนั้นจึงเปลี่ยนแปลงเพื่อให้สามารถนำไปใช้กับแนวคิดที่ก้าวล้ำใหม่ๆ ได้ ฉันคิดว่าบล็อกเชนนั้นยอดเยี่ยมสำหรับการเป็นแนวคิดที่สดใหม่และก่อกวน

Alexey: ทำไมคุณถึงคิดว่าสิ่งนี้เกิดขึ้น? เพราะคน “ภายนอก” ไม่มีอุปสรรคเฉพาะในชุมชนใช่ไหม?

มอริซ: มีรูปแบบเกิดขึ้นที่นี่ หากคุณอ่านประวัติศาสตร์ของอิมเพรสชั่นนิสต์ในการวาดภาพและศิลปะโดยทั่วไป ครั้งหนึ่งศิลปินชื่อดังก็ปฏิเสธอิมเพรสชั่นนิสต์ พวกเขาบอกว่ามันเป็นเรื่องเด็กๆ รุ่นต่อมา รูปแบบศิลปะที่ถูกปฏิเสธก่อนหน้านี้กลายเป็นมาตรฐาน สิ่งที่ฉันเห็นในสาขาของฉัน: นักประดิษฐ์บล็อคเชนไม่สนใจเรื่องอำนาจ ในการเพิ่มสิ่งพิมพ์และดัชนีการอ้างอิง พวกเขาเพียงต้องการทำสิ่งที่ดี พวกเขาจึงนั่งลงและเริ่มทำมัน พวกเขาขาดความลึกทางเทคนิคจำนวนหนึ่ง แต่ก็สามารถแก้ไขได้ การคิดไอเดียสร้างสรรค์ใหม่ๆ นั้นยากกว่าการแก้ไขและเสริมความเข้มแข็งให้กับความคิดที่ยังไม่บรรลุนิติภาวะเพียงพอ ต้องขอบคุณนักประดิษฐ์เหล่านี้ ตอนนี้ฉันมีอะไรต้องทำแล้ว!

Alexey: สิ่งนี้คล้ายกับความแตกต่างระหว่างสตาร์ทอัพและโปรเจ็กต์รุ่นเก่า เราได้รับข้อจำกัดมากมายในด้านความคิด อุปสรรค ข้อกำหนดพิเศษ และอื่นๆ

มอริซ: การเปรียบเทียบที่ดีคือการคำนวณแบบกระจาย ลองนึกถึงบล็อกเชนราวกับว่าเป็นสตาร์ทอัพและคอมพิวเตอร์แบบกระจายในฐานะบริษัทขนาดใหญ่ที่จัดตั้งขึ้น การประมวลผลแบบกระจายกำลังอยู่ในขั้นตอนการรับและรวมเข้ากับบล็อคเชน

ปริญญาเอกภายใต้การดูแลของ Barbara Liskov

Vitaly: เรายังมีคำถามมากมาย! เรากำลังตรวจสอบภูมิหลังของคุณและพบข้อเท็จจริงที่น่าสนใจเกี่ยวกับปริญญาเอกของคุณ ใช่ นี่ผ่านมานานแล้ว แต่ดูเหมือนว่าจะเป็นหัวข้อสำคัญ คุณได้รับปริญญาเอกภายใต้การแนะนำของตัวคุณเอง บาร์บารา ลิสคอฟ! Barbara เป็นที่รู้จักกันดีในชุมชนภาษาการเขียนโปรแกรมและเป็นบุคคลที่รู้จักกันดีโดยทั่วไป เป็นเหตุผลที่งานวิจัยของคุณอยู่ในสาขาภาษาโปรแกรม คุณเปลี่ยนมาใช้การประมวลผลแบบขนานได้อย่างไร ทำไมคุณถึงตัดสินใจเปลี่ยนหัวข้อ?

มอริซ: ตอนนั้น บาร์บาราและกลุ่มของเธอแค่มองหาการประมวลผลแบบกระจาย ซึ่งเป็นแนวคิดที่ใหม่มาก นอกจากนี้ยังมีผู้ที่กล่าวว่าการคำนวณแบบกระจายเป็นเรื่องไร้สาระ และคอมพิวเตอร์ที่สื่อสารระหว่างกันนั้นไร้จุดหมาย ปัญหาประการหนึ่งที่ได้รับการจัดการในการประมวลผลแบบกระจายที่แตกต่างจากการประมวลผลแบบรวมศูนย์คือความทนทานต่อข้อผิดพลาด หลังจากการค้นคว้าข้อมูลมากมาย เราตัดสินใจว่าภาษาโปรแกรมคอมพิวเตอร์แบบกระจายจำเป็นต้องมีธุรกรรมแบบอะตอมมิก เนื่องจากคุณไม่สามารถแน่ใจได้ว่าการโทรระยะไกลจะประสบผลสำเร็จ เมื่อคุณมีธุรกรรม ปัญหาของการจัดการพร้อมกันก็เกิดขึ้น จากนั้นก็มีงานอีกมากในการรับโครงสร้างข้อมูลธุรกรรมแบบขนานสูง จากนั้นเมื่อฉันเรียนจบฉันก็ไป คาร์เนกี เมลลอน และเริ่มมองหาหัวข้อที่จะทำงาน ฉันคิดขึ้นมาว่าคอมพิวเตอร์ได้ย้ายจากคอมพิวเตอร์แต่ละเครื่องไปยังเครือข่ายของคอมพิวเตอร์แล้ว มัลติโปรเซสเซอร์จะเป็นความก้าวหน้าอย่างต่อเนื่องตามธรรมชาติ - คำว่า "มัลติคอร์" ยังไม่มีอยู่ ฉันคิดว่า: อะไรคือสิ่งที่เทียบเท่ากับธุรกรรมปรมาณูสำหรับระบบมัลติคอร์? ไม่ใช่ธุรกรรมปกติอย่างแน่นอนเนื่องจากมีขนาดใหญ่และหนักเกินไป และนั่นคือวิธีที่ฉันคิดขึ้นมา ความเป็นเส้นตรง และนั่นคือวิธีที่ฉันสร้างการซิงโครไนซ์แบบไม่ต้องรอทั้งหมดขึ้นมา นี่เป็นความพยายามที่จะตอบคำถามว่าอะไรคืออะนาล็อกของธุรกรรมอะตอมมิกสำหรับระบบมัลติโปรเซสเซอร์ที่มีหน่วยความจำที่ใช้ร่วมกัน เมื่อมองแวบแรกงานนี้อาจดูแตกต่างไปจากเดิมอย่างสิ้นเชิง แต่จริงๆ แล้วมันเป็นความต่อเนื่องของธีมเดียวกัน

โลกกำลังรอมัลติคอร์อยู่

Vitaly: คุณบอกว่าตอนนั้นมีคอมพิวเตอร์แบบ Multi-core น้อยมากใช่ไหม?

มอริซ: พวกเขาไม่ได้อยู่ที่นั่น มีสิ่งที่เรียกว่ามัลติโปรเซสเซอร์แบบสมมาตรหลายตัว ซึ่งโดยพื้นฐานแล้วเชื่อมต่อกับบัสเดียวกัน สิ่งนี้ทำงานได้ไม่ดีนัก เพราะทุกครั้งที่บริษัทใหม่สร้างสิ่งที่คล้ายกัน Intel จะปล่อยโปรเซสเซอร์ตัวเดียวที่เหนือกว่ามัลติโปรเซสเซอร์

Alexey: นี่ไม่ได้หมายความว่าในสมัยโบราณมันเป็นการศึกษาเชิงทฤษฎีมากกว่าหรือ?

มอริซ: มันไม่ใช่การศึกษาเชิงทฤษฎี แต่เป็นการศึกษาเชิงเก็งกำไร ทั้งหมดนี้ไม่ได้เกี่ยวกับการทำงานกับทฤษฎีบทต่างๆ มากมาย แต่เราหยิบยกสมมติฐานเกี่ยวกับสถาปัตยกรรมที่ไม่มีอยู่ในขณะนั้น นี่คือสิ่งที่การวิจัยมีไว้เพื่อ! ไม่มีบริษัทใดที่จะทำอะไรแบบนี้ได้ ทั้งหมดนี้ล้วนมาจากอนาคตอันไกลโพ้น ในความเป็นจริงเป็นกรณีนี้จนถึงปี 2004 เมื่อโปรเซสเซอร์แบบมัลติคอร์จริงปรากฏขึ้น เนื่องจากโปรเซสเซอร์มีความร้อนมากเกินไป คุณจึงสามารถทำให้โปรเซสเซอร์มีขนาดเล็กลงได้ แต่คุณไม่สามารถทำให้เร็วขึ้นได้ ด้วยเหตุนี้ จึงมีการเปลี่ยนแปลงไปสู่สถาปัตยกรรมแบบมัลติคอร์ และนั่นหมายความว่าจู่ๆ ก็มีการนำแนวคิดทั้งหมดที่เราพัฒนาขึ้นมาในอดีตมาใช้

Alexey: ทำไมคุณถึงคิดว่าโปรเซสเซอร์แบบมัลติคอร์ปรากฏเฉพาะในปี XNUMX เท่านั้น แล้วทำไมมันช้าจังล่ะ?

มอริซ: นี่เป็นเพราะข้อจำกัดด้านฮาร์ดแวร์ Intel, AMD และบริษัทอื่นๆ เก่งมากในการเพิ่มความเร็วโปรเซสเซอร์ เมื่อถึงจุดหนึ่ง โปรเซสเซอร์มีขนาดเล็กพอที่จะเพิ่มความเร็วสัญญาณนาฬิกาไม่ได้อีกต่อไป เนื่องจากโปรเซสเซอร์จะเริ่มไหม้ คุณสามารถทำให้มันเล็กลงได้แต่ไม่เร็วขึ้น สิ่งที่อยู่ในอำนาจของพวกเขา - แทนที่จะเป็นโปรเซสเซอร์ขนาดเล็กมาก พวกเขาสามารถใส่โปรเซสเซอร์แปด, สิบหกหรือสามสิบสองตัวลงในเคสขนาดเดียวกันได้ ซึ่งก่อนหน้านี้มีเพียงตัวเดียวเท่านั้นที่สามารถใส่ได้ ตอนนี้คุณมีการสื่อสารแบบมัลติเธรดและรวดเร็วระหว่างพวกเขาเพราะพวกเขาแชร์แคช แต่คุณไม่สามารถบังคับให้พวกมันวิ่งเร็วขึ้นได้ - มีการจำกัดความเร็วที่เฉพาะเจาะจงมาก พวกเขายังคงพัฒนาต่อไปทีละน้อยแต่ไม่มากอีกต่อไป กฎแห่งฟิสิกส์เป็นอุปสรรคต่อการปรับปรุง

โลกใหม่นำมาซึ่งปัญหาใหม่ NUMA, NVM และการแฮ็กสถาปัตยกรรม

Alexey: ฟังดูสมเหตุสมผลมาก ด้วยโปรเซสเซอร์แบบมัลติคอร์ใหม่ปัญหาใหม่ก็เกิดขึ้น คุณและเพื่อนร่วมงานคาดหวังปัญหาเหล่านี้หรือไม่? บางทีคุณอาจศึกษาพวกเขาล่วงหน้า? ในการศึกษาเชิงทฤษฎี มักจะไม่ง่ายนักที่จะทำนายสิ่งเหล่านี้ เมื่อเกิดปัญหาขึ้น พวกเขาตอบสนองความคาดหวังของคุณและเพื่อนร่วมงานได้อย่างไร หรือเป็นของใหม่และคุณและเพื่อนร่วมงานต้องใช้เวลามากในการแก้ปัญหาตามที่ปรากฏ?

Vitaly: ฉันจะเพิ่มคำถามของ Alexey: คุณทำนายสถาปัตยกรรมโปรเซสเซอร์อย่างถูกต้องในขณะที่คุณกำลังศึกษาทฤษฎีหรือไม่?

มอริซ: ไม่ 100% แต่ฉันคิดว่าเพื่อนร่วมงานของฉันและฉันทำได้ดีมากในการคาดการณ์มัลติคอร์ด้วยหน่วยความจำที่ใช้ร่วมกัน ฉันคิดว่าเราคาดการณ์ปัญหาในการพัฒนาโครงสร้างข้อมูลแบบขนานที่ทำงานโดยไม่มีการล็อคได้อย่างถูกต้อง โครงสร้างข้อมูลดังกล่าวมีความสำคัญสำหรับแอปพลิเคชันจำนวนมาก แม้ว่าจะไม่ใช่ทั้งหมด แต่บ่อยครั้งที่คุณต้องการจริงๆ ก็คือโครงสร้างข้อมูลที่ไม่ล็อก ตอนที่เราประดิษฐ์มันขึ้นมา หลายคนแย้งว่านี่เป็นเรื่องไร้สาระ ที่ทุกอย่างใช้ได้ดีกับกุญแจ เราคาดการณ์ไว้ค่อนข้างดีว่าจะมีวิธีแก้ปัญหาสำเร็จรูปสำหรับปัญหาการเขียนโปรแกรมและปัญหาโครงสร้างข้อมูลมากมาย นอกจากนี้ยังมีปัญหาที่ซับซ้อนมากขึ้น เช่น นูมา - การเข้าถึงหน่วยความจำไม่สม่ำเสมอ ในความเป็นจริง โปรเซสเซอร์เหล่านั้นไม่ได้รับการพิจารณาจนกระทั่งมีการประดิษฐ์โปรเซสเซอร์แบบมัลติคอร์ขึ้นมา เนื่องจากมีความเฉพาะเจาะจงเกินไป ชุมชนการวิจัยกำลังตอบคำถามที่คาดเดาได้โดยทั่วไป ปัญหาฮาร์ดแวร์บางอย่างที่เกี่ยวข้องกับสถาปัตยกรรมเฉพาะต้องรอที่ปีก - อันที่จริงรูปลักษณ์ของสถาปัตยกรรมเหล่านี้ ตัวอย่างเช่น ไม่มีใครทำงานกับโครงสร้างข้อมูลเฉพาะของ GPU ได้จริงๆ เพราะตอนนั้นยังไม่มี GPU แม้ว่างานจะผ่านไปมากมายก็ตาม ซิมดีอัลกอริธึมเหล่านี้พร้อมใช้งานทันทีที่มีฮาร์ดแวร์ที่เหมาะสม อย่างไรก็ตาม เป็นไปไม่ได้ที่จะคาดเดาทุกสิ่งได้

Alexey: ถ้าฉันเข้าใจถูกต้อง NUMA คือการประนีประนอมระหว่างต้นทุน ประสิทธิภาพ และอื่นๆ มีความคิดเห็นใดบ้างว่าทำไม NUMA ถึงออกมาช้ามาก?

มอริซ: ฉันคิดว่า NUMA มีอยู่เนื่องจากปัญหากับฮาร์ดแวร์ที่ใช้สร้างหน่วยความจำ ยิ่งส่วนประกอบอยู่ไกลเท่าไร การเข้าถึงก็จะยิ่งช้าลงเท่านั้น ในทางกลับกัน ค่าที่สองของนามธรรมนี้คือความสม่ำเสมอของหน่วยความจำ ดังนั้นคุณลักษณะอย่างหนึ่งของการคำนวณแบบขนานก็คือ นามธรรมทั้งหมดจะเสียหายเล็กน้อย หากการเข้าถึงมีความสม่ำเสมอกันอย่างสมบูรณ์ หน่วยความจำทั้งหมดจะมีระยะห่างเท่ากัน แต่นี่เป็นไปไม่ได้ในเชิงเศรษฐกิจ และอาจเป็นไปได้ทางกายภาพด้วยซ้ำ ความขัดแย้งนี้จึงเกิดขึ้น หากคุณเขียนโปรแกรมราวกับว่าหน่วยความจำมีความสม่ำเสมอ ก็น่าจะถูกต้อง ในแง่ที่ว่าจะไม่ให้คำตอบที่ผิด แต่การแสดงของเธอก็ไม่สามารถจับดวงดาวจากท้องฟ้าได้เช่นกัน ในทำนองเดียวกันถ้าคุณเขียน สปินล็อค การบล็อกตัวเองจะถูกต้องหากไม่เข้าใจลำดับชั้นของแคช แต่ประสิทธิภาพการทำงานก็อาจลืมไปได้เลย ในแง่หนึ่ง คุณต้องเขียนโปรแกรมที่อยู่ด้านบนของนามธรรมที่เรียบง่าย แต่คุณต้องเอาชนะคนที่ให้นามธรรมนั้นแก่คุณ คุณต้องรู้ว่าภายใต้นามธรรมนั้น มีลำดับชั้นของความทรงจำอยู่บ้าง ซึ่งมี รถบัสระหว่างคุณกับความทรงจำนี้ และอื่นๆ ดังนั้นจึงมีข้อขัดแย้งบางประการระหว่างนามธรรมที่เป็นประโยชน์เป็นรายบุคคล ซึ่งนำเราไปสู่ปัญหาที่เป็นรูปธรรมและเชิงปฏิบัติ

วิตาลี: แล้วอนาคตล่ะ? คุณสามารถคาดเดาได้ไหมว่าโปรเซสเซอร์จะพัฒนาต่อไปอย่างไร? มีความคิดที่ว่าหนึ่งในคำตอบคือหน่วยความจำทรานแซคชัน คุณอาจมีอย่างอื่นในสต็อก

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

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

Alexey: แล้วหน่วยความจำแบบไม่ลบเลือน (หน่วยความจำไม่ลบเลือน)?

มอริซ: โอ้ นั่นเป็นอีกตัวอย่างที่ดีอีกประการหนึ่ง! NVM จะเปลี่ยนวิธีการมองสิ่งต่างๆ เช่น โครงสร้างข้อมูลไปอย่างมาก ในแง่หนึ่ง หน่วยความจำแบบไม่ลบเลือนสัญญาว่าจะทำให้สิ่งต่างๆ เร็วขึ้นได้จริงๆ แต่มันจะไม่ทำให้ชีวิตง่ายขึ้นอีกต่อไป เนื่องจากโปรเซสเซอร์ แคช และรีจิสเตอร์ส่วนใหญ่ยังคงมีความผันผวน เมื่อคุณออกรถหลังจากการชน สถานะและสถานะหน่วยความจำของคุณจะไม่เหมือนกับก่อนเกิดอุบัติเหตุทุกประการ ฉันรู้สึกขอบคุณมากกับคนที่ทำงานเกี่ยวกับ NVM - จะมีนักวิจัยอีกมากมายที่ต้องทำเป็นเวลานานในการพยายามหาเงื่อนไขที่ถูกต้อง การคำนวณจะถูกต้องหากสามารถรอดจากความผิดพลาดซึ่งเนื้อหาของแคชและรีจิสเตอร์สูญหายไป แต่หน่วยความจำหลักยังคงไม่เสียหาย

คอมไพเลอร์เทียบกับโปรเซสเซอร์ RISC เทียบกับ CISC หน่วยความจำที่ใช้ร่วมกันเทียบกับการส่งข้อความ

Vladimir: คุณคิดอย่างไรเกี่ยวกับภาวะที่กลืนไม่เข้าคายไม่ออกระหว่าง "คอมไพเลอร์กับโปรเซสเซอร์" จากมุมมองของชุดคำสั่ง? ให้ฉันอธิบายสำหรับผู้ที่ไม่รู้: ถ้าเราไปที่หน่วยความจำเบ้หรืออะไรที่คล้ายกัน เราสามารถใช้ชุดคำสั่งง่ายๆ และขอให้คอมไพเลอร์สร้างโค้ดที่ซับซ้อนซึ่งสามารถใช้ประโยชน์จากข้อดีที่ค้นพบได้ หรือเราอาจไปทางอื่น: ใช้คำสั่งที่ซับซ้อนและขอให้โปรเซสเซอร์จัดลำดับคำสั่งใหม่และดำเนินการอื่น ๆ กับพวกเขา คุณคิดอย่างไรเกี่ยวกับเรื่องนี้?

มอริซ: ฉันไม่มีคำตอบสำหรับคำถามนั้นจริงๆ การอภิปรายนี้ดำเนินมาเป็นเวลาสี่ทศวรรษแล้ว มีช่วงเวลาหนึ่งระหว่างนั้น ย่อ ชุดคำสั่งและ ยาก สงครามกลางเมืองเกิดขึ้นโดยชุดคำสั่ง ในช่วงหนึ่งที่บุคลากร RISC ชนะ แต่แล้ว Intel ได้สร้างเอ็นจิ้นใหม่เพื่อใช้ชุดคำสั่งที่ลดลงภายใน และชุดคำสั่งทั้งหมดถูกส่งออกไปยังภายนอก นี่อาจเป็นหัวข้อที่คนรุ่นใหม่แต่ละคนต้องหาทางประนีประนอมและตัดสินใจด้วยตัวเอง เป็นเรื่องยากมากที่จะคาดเดาได้ว่าสิ่งใดจะดีกว่า ดังนั้นคำทำนายใด ๆ ที่ฉันทำจะเป็นจริงในช่วงเวลาหนึ่ง จากนั้นก็จะเท็จอีกชั่วขณะหนึ่ง แล้วก็เป็นจริงอีกครั้ง

Alexey: เป็นเรื่องปกติแค่ไหนสำหรับอุตสาหกรรมที่แนวคิดบางอย่างชนะใจมาหลายทศวรรษแล้วแพ้ในครั้งต่อไป? มีตัวอย่างอื่นของการเปลี่ยนแปลงเป็นระยะดังกล่าวหรือไม่?

มอริซ: ในหัวข้อคอมพิวเตอร์แบบกระจาย มีคนที่เชื่อในเรื่องนี้ หน่วยความจำที่ใช้ร่วมกัน และคนที่เชื่อใน การแลกเปลี่ยนข้อความ. ในขั้นต้น ในการคำนวณแบบกระจาย การคำนวณแบบขนานหมายถึงการส่งข้อความ จากนั้นมีคนค้นพบว่าการเขียนโปรแกรมด้วยหน่วยความจำที่ใช้ร่วมกันนั้นง่ายกว่ามาก ฝ่ายตรงข้ามกล่าวว่าหน่วยความจำที่ใช้ร่วมกันนั้นซับซ้อนเกินไปเนื่องจากต้องมีการล็อคและสิ่งที่คล้ายกัน ดังนั้นจึงคุ้มค่าที่จะย้ายไปใช้ภาษาที่ไม่มีอะไรนอกจากการส่งข้อความธรรมดา มีคนดูสิ่งที่เกิดขึ้นและพูดว่า "ว้าว การใช้งานการรับส่งข้อความนี้ดูเหมือนหน่วยความจำที่ใช้ร่วมกันมาก เพราะคุณสร้างโมดูลเล็กๆ เหล่านี้จำนวนมาก พวกเขาส่งข้อความหากัน และทั้งหมด เชื่อมต่อกัน“มาสร้างฐานข้อมูลหน่วยความจำที่ใช้ร่วมกันให้ดีขึ้นกันเถอะ!” ทั้งหมดนี้เกิดขึ้นซ้ำแล้วซ้ำเล่าและเป็นไปไม่ได้ที่จะบอกว่าฝ่ายใดฝ่ายหนึ่งพูดถูกอย่างแน่นอน ฝ่ายหนึ่งจะมีอำนาจเหนือเสมอ เพราะทันทีที่ฝ่ายหนึ่งเกือบจะชนะ ผู้คนก็คิดค้นวิธีปรับปรุงอีกฝ่ายครั้งแล้วครั้งเล่า

ศิลปะแห่งการเขียนโค้ดแบบมัลติเธรดแบบเปราะ

Alexey: นี่น่าสนใจมาก ตัวอย่างเช่น เมื่อเราเขียนโค้ด ไม่ว่าภาษาโปรแกรมใดก็ตาม เรามักจะต้องสร้างนามธรรม เช่น เซลล์ที่สามารถอ่านและเขียนได้ แต่ในความเป็นจริงแล้ว ในระดับทางกายภาพ สิ่งนี้อาจดูเหมือนเป็นการส่งข้อความผ่านบัสฮาร์ดแวร์ระหว่างคอมพิวเตอร์เครื่องอื่นและอุปกรณ์อื่นๆ ปรากฎว่างานกำลังเกิดขึ้นทั้งสองระดับของนามธรรมพร้อมกัน

มอริซ: เป็นความจริงอย่างยิ่งที่หน่วยความจำที่ใช้ร่วมกันสร้างขึ้นจากการส่งข้อความ เช่น บัส แคช และอื่นๆ แต่มันยากที่จะเขียนโปรแกรมโดยใช้การส่งข้อความ ดังนั้นฮาร์ดแวร์จึงจงใจโกหกโดยแสร้งทำเป็นว่าคุณมีหน่วยความจำที่เหมือนกัน ซึ่งจะทำให้ง่ายต่อการเขียนโปรแกรมที่เรียบง่ายและถูกต้องก่อนที่ประสิทธิภาพจะเริ่มลดลง จากนั้นคุณจะพูดว่า: ดูเหมือนว่าถึงเวลาที่จะผูกมิตรกับแคชแล้ว จากนั้นคุณเริ่มกังวลเกี่ยวกับตำแหน่งของแคช และจากนั้นมันก็ไป ในแง่หนึ่ง คุณกำลังแฮ็กสิ่งที่เป็นนามธรรม คุณรู้ว่ามันไม่ใช่แค่หน่วยความจำแบบแบนและสม่ำเสมอ และคุณจะใช้ความรู้นั้นในการเขียนโปรแกรมที่เหมาะกับแคช นี่คือสิ่งที่คุณจะต้องทำในปัญหาที่แท้จริง ความขัดแย้งระหว่างนามธรรมที่ไพเราะ เรียบง่าย และสวยงามที่คุณได้รับกับการใช้งานฮาร์ดแวร์พื้นฐานที่ซับซ้อนอย่างน่าสยดสยองคือจุดที่ทุกคนจะต้องประนีประนอมกันเอง ฉันมีหนังสือเกี่ยวกับมัลติโปรเซสเซอร์และการซิงโครไนซ์ และถึงจุดหนึ่งฉันจะเขียนบทเกี่ยวกับโครงสร้างข้อมูลใน java.util.พร้อมกัน. หากคุณดูพวกเขาสิ่งต่าง ๆ เช่น รายการที่มีการละเว้น สิ่งเหล่านี้เป็นผลงานศิลปะที่น่าทึ่ง (หมายเหตุบรรณาธิการ: ผู้ที่คุ้นเคยกับภาษา Java อย่างน้อยควรดูที่การใช้งาน พร้อมกันSkipListMap, คุณสามารถดูลิงค์ได้ที่ API и รหัสแหล่งที่มา). แต่จากมุมมองของฉัน มันจะขาดความรับผิดชอบที่จะแสดงให้นักเรียนดู เพราะโครงสร้างข้อมูลดังกล่าวคล้ายกับผู้ชายในละครสัตว์ที่กำลังวิ่งบนเชือกไต่เชือกเหนือหลุมหมี หากคุณเปลี่ยนแปลงรายละเอียดเล็กๆ น้อยๆ โครงสร้างทั้งหมดจะพังทลายลง รหัสนี้รวดเร็วและสวยงามมากเพียงเพราะมันเขียนได้อย่างสมบูรณ์แบบ แต่การเปลี่ยนแปลงเพียงเล็กน้อยจะนำไปสู่ความล้มเหลวโดยสิ้นเชิง ถ้าฉันยกโค้ดนี้ให้นักเรียนเป็นตัวอย่าง พวกเขาจะพูดทันทีว่า ฉันก็ทำได้เช่นกัน! จากนั้นเครื่องบินบางลำจะตกหรือเครื่องปฏิกรณ์นิวเคลียร์จะระเบิด และฉันจะรู้สึกผิดที่ให้ข้อมูลมากเกินไปในเวลาที่ผิด

Alexey: ตอนที่ฉันยังเด็ก หลายครั้งฉันพยายามศึกษาซอร์สโค้ดของ Doug Lee เช่น java.util.พร้อมกันเนื่องจากเป็นโอเพ่นซอร์ส จึงง่ายต่อการค้นหาและพยายามทำความเข้าใจว่าเกิดอะไรขึ้น มันไม่ได้ผลดีนัก บ่อยครั้งที่ไม่มีความชัดเจนเลยว่าทำไม Doug จึงตัดสินใจทำบางอย่างในลักษณะนี้ ในเมื่อคนอื่นๆ ทำแตกต่างออกไป คุณจะอธิบายสิ่งเหล่านี้ให้นักเรียนของคุณฟังอย่างไร? มีวิธีที่ถูกต้องโดยเฉพาะในการอธิบายรายละเอียดเฉพาะของอัลกอริธึมแบบฮาร์ดคอร์หรือไม่? คุณจะทำอย่างไร?

มอริซ: ครูสอนวาดรูปมีความคิดโบราณที่พวกเขาจำได้เป็นอันดับแรก: หากคุณต้องการวาดเหมือนปิกัสโซ คุณต้องเรียนรู้วิธีการวาดภาพเหมือนจริงแบบง่ายๆ ก่อน และเมื่อคุณรู้กฎเกณฑ์เท่านั้น คุณจึงจะเริ่มแหกกฎได้ หากคุณเริ่มต้นด้วยการละเมิดกฎทันที คุณจะพบกับความยุ่งเหยิง ก่อนอื่น ฉันสอนนักเรียนถึงวิธีเขียนโค้ดที่เรียบง่ายและถูกต้องโดยไม่ต้องกังวลเกี่ยวกับประสิทธิภาพ สิ่งที่ฉันพูดคือมีปัญหาเรื่องเวลาที่ซับซ้อนซ่อนอยู่ที่นี่ ดังนั้นไม่ต้องกังวลกับแคช ไม่ต้องกังวลกับรุ่นหน่วยความจำ เพียงตรวจสอบให้แน่ใจว่าทุกอย่างทำงานอย่างถูกต้อง นี่เป็นเรื่องยากอยู่แล้ว: การเขียนโปรแกรมสมัยใหม่ไม่ใช่เรื่องง่ายในตัวมันเอง โดยเฉพาะสำหรับนักเรียนใหม่ และเมื่อพวกเขามีสัญชาตญาณเกี่ยวกับวิธีการเขียนโปรแกรมที่ถูกต้อง ฉันพูดว่า: ดูการใช้งาน Spinlock ทั้งสองนี้: อันหนึ่งช้ามากและอย่างที่สองก็ไม่มากเช่นกัน แต่ดีกว่า อย่างไรก็ตาม ตามหลักคณิตศาสตร์แล้ว อัลกอริธึมทั้งสองจะเหมือนกัน อันที่จริงหนึ่งในนั้นใช้พื้นที่แคช หนึ่งในนั้นทำงานบนข้อมูลที่แคชในเครื่อง และอีกอันดำเนินการซ้ำๆ บนบัส คุณไม่สามารถเขียนโค้ดที่มีประสิทธิภาพได้ หากคุณไม่เข้าใจว่ามันคืออะไร และไม่รู้ว่าจะแยกสิ่งที่เป็นนามธรรมออกไปและมองไปที่โครงสร้างพื้นฐานได้อย่างไร แต่คุณจะไม่สามารถเริ่มทำสิ่งนี้ได้ในทันที มีคนเริ่มทำทันทีและเชื่อในอัจฉริยภาพของตัวเอง มักจะจบลงอย่างเลวร้ายเพราะไม่เข้าใจหลักการ ไม่มีใครวาดภาพได้เหมือน Picasso หรือเขียนโปรแกรมเหมือน Doug Lee เพิ่งออกจากวิทยาลัยในสัปดาห์แรกของเขา ต้องใช้เวลาหลายปีกว่าจะถึงระดับความรู้นี้

Alexey: ปรากฎว่าคุณแบ่งปัญหาออกเป็นสองส่วน ส่วนแรกคือความถูกต้อง ส่วนที่สองคือประสิทธิภาพ?

มอริซ: แน่นอน และตามลำดับนั้น ส่วนหนึ่งของปัญหาคือนักเรียนใหม่ไม่เข้าใจว่าความถูกต้องนั้นทำได้ยาก เมื่อเห็นแวบแรกพวกเขาพูดว่า: เห็นได้ชัดว่าถูกต้องสิ่งที่เหลืออยู่คือการเร่งความเร็ว ดังนั้นบางครั้งฉันก็บอกพวกเขาเกี่ยวกับอัลกอริธึมที่ไม่ถูกต้องในตอนแรกราวกับว่ามันถูกต้อง

วิธีสอนนักเรียนให้เขียนโค้ดแบบมัลติเธรดที่ซับซ้อน

Alexey: เพียงเพื่อดูว่าพวกเขาสามารถสัมผัสได้หรือไม่?

มอริซ: ฉันเตือนล่วงหน้าเสมอว่าบางครั้งฉันจะเสนออัลกอริธึมที่ไม่ถูกต้อง คุณไม่ควรหลอกลวงผู้คน ฉันขอแนะนำให้พวกเขาใช้ข้อมูลด้วยเกลือเม็ดหนึ่ง ถ้าฉันบอกอะไรบางอย่างและพูดว่า: "ดูสินี่ถูกต้องชัดเจน" - นี่เป็นสัญญาณว่าพวกเขากำลังพยายามหลอกลวงคุณอยู่ที่ไหนสักแห่งและคุณควรเริ่มถามคำถาม ต่อไป ฉันพยายามสนับสนุนให้นักเรียนถามคำถามต่อไป แล้วเสนอแนะว่า “จะเกิดอะไรขึ้นถ้าเราปล่อยไว้เหมือนเดิม” และพวกเขาก็เห็นข้อผิดพลาดทันที แต่การโน้มน้าวนักเรียนว่าพวกเขาจำเป็นต้องกังวลเกี่ยวกับความถูกต้องนั้นยากกว่าที่เห็นเมื่อมองแวบแรก นักเรียนเหล่านี้หลายคนมีประสบการณ์การเขียนโปรแกรมในโรงเรียนมัธยมศึกษาตอนปลาย บางคนได้งานทำและเขียนโปรแกรมที่นั่น และพวกเขาทั้งหมดเต็มไปด้วยความมั่นใจ สิ่งนี้คล้ายกับกองทัพ ก่อนอื่นคุณต้องเปลี่ยนอารมณ์ของพวกเขาเพื่อโน้มน้าวให้พวกเขาอดทนในการแก้ปัญหาที่เกิดขึ้น หรือบางทีก็เหมือนกับพระภิกษุ ขั้นแรกพวกเขาเรียนรู้ที่จะให้เหตุผลเกี่ยวกับความถูกต้อง และเมื่อพวกเขาเข้าใจวิธีการให้เหตุผลเกี่ยวกับความถูกต้องแล้ว พวกเขาก็จะได้รับอนุญาตให้ก้าวไปสู่ระดับถัดไปและเริ่มกังวลเกี่ยวกับการแสดง

Alexey: นั่นคือ บางครั้งคุณแสดงตัวอย่างที่ไม่ทำงานให้กับนักเรียน ซึ่งคุณจะได้รับผลตอบรับที่แสดงให้เห็นว่าพวกเขาเข้าใจแก่นแท้ของปัญหาหรือไม่ พวกเขาสามารถค้นหารหัสผิดและผลลัพธ์ที่ผิดได้หรือไม่ แล้วนักเรียนมักจะทำให้คุณมีความสุขหรือเสียใจไหม?

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

Alexey: น่าสนใจมาก โดยปกติแล้วผู้คนจะมีอุปสรรคทางจิตวิทยาบางอย่างที่ไม่อนุญาตให้พวกเขาถามคำถามกับอาจารย์ โดยเฉพาะอย่างยิ่งถ้าในห้องมีคนจำนวนมาก และทุกคนกลัวว่าการพูดคุยถึงคำถามโง่ๆ ของคุณจะกินเวลาของคนเหล่านี้ทั้งหมด มีเทคนิคในการจัดการกับสิ่งนี้หรือไม่?

มอริซ: ฉันมักจะหยุดและถามคำถามคลาสสิก ไม่ว่าข้อความจะถูกต้องหรือจะแก้ไขปัญหาที่กำลังหารือกันอย่างไร นี่เป็นการกระทำที่สำคัญ โดยเฉพาะอย่างยิ่งในช่วงเริ่มต้นบทเรียนเมื่อผู้คนรู้สึกเขินอายที่จะพูดแม้แต่เรื่องเล็กๆ น้อยๆ คุณถามคำถามกับนักเรียนและไม่พูดอะไรเพิ่มเติม เกิดความเงียบ ทุกคนตึงเครียดเล็กน้อย ความตึงเครียดเพิ่มขึ้น จู่ๆ ก็มีคนทนไม่ไหว ทรุดตัวลงแล้วพูดคำตอบ นี่คือวิธีที่คุณพลิกสถานการณ์: การนิ่งเงียบต่อไปกลายเป็นเรื่องยากและไม่สะดวกกว่าการตอบ! นี่เป็นเคล็ดลับการสอนมาตรฐาน ครูทุกคนในโลกควรรู้วิธีการทำเช่นนี้

Alexey: ตอนนี้เรามีหัวข้อที่ยอดเยี่ยมสำหรับการสัมภาษณ์ครั้งนี้: “ตอบง่ายกว่าการเงียบ”

วิทาลี: ฉันขอถามอีกครั้ง คุณกำลังดำเนินการพิสูจน์ทอพอโลยี คุณมีส่วนร่วมในเรื่องนี้ได้อย่างไร เพราะการคำนวณแบบกระจายและโทโพโลยีเป็นสิ่งที่แตกต่างอย่างสิ้นเชิง!

มอริซ: มีความเชื่อมโยงที่ซ่อนอยู่ที่นั่น ตอนที่ฉันเป็นนักเรียนที่เรียนวิชาคณิตศาสตร์ ฉันเรียนคณิตศาสตร์ล้วนๆ ฉันไม่สนใจคอมพิวเตอร์เลยจนกระทั่งการเรียนจบ และพบว่าตัวเองต้องเผชิญกับความจำเป็นเร่งด่วนในการหางาน ในฐานะนักเรียน ฉันเรียนโทโพโลยีพีชคณิต หลายปีต่อมาขณะกำลังแก้ไขปัญหาที่เรียกว่า “ปัญหาข้อตกลงเค-เซต”ฉันใช้กราฟเพื่อจำลองปัญหา และดูเหมือนว่า ณ เวลานั้น ฉันได้พบวิธีแก้ปัญหาแล้ว คุณเพียงแค่ต้องนั่งลงและนับ ลองหาคำตอบที่เหมาะสมจากกราฟนี้ แต่อัลกอริธึมของฉันไม่ทำงาน ปรากฎว่าเขาจะวิ่งเป็นวงกลมตลอดไป น่าเสียดายที่ทั้งหมดนี้ไม่สามารถอธิบายได้ในภาษาทางการของทฤษฎีกราฟ ซึ่งเป็นภาษาที่นักวิทยาศาสตร์คอมพิวเตอร์ทุกคนรู้ แล้วฉันก็จำได้ว่าเมื่อหลายปีก่อน ในชั้นเรียนโทโพโลยี เราใช้แนวคิดนี้ "ซับซ้อนง่าย"ซึ่งเป็นลักษณะทั่วไปของกราฟไปสู่มิติที่สูงขึ้น จากนั้นฉันก็ถามตัวเองว่า: จะเกิดอะไรขึ้นถ้าเรากำหนดรูปแบบปัญหาใหม่ในแง่ของเชิงซ้อนเชิงซ้อน? นี่กลายเป็นช่วงเวลาสำคัญ ด้วยการใช้พิธีการที่มีพลังมากขึ้น ปัญหาก็จะง่ายขึ้นมากในทันที ผู้คนต่อสู้กับมันมาเป็นเวลานานโดยใช้กราฟ แต่พวกเขาไม่สามารถทำอะไรได้ และถึงตอนนี้ก็ยังทำไม่ได้ - คำตอบที่ถูกต้องไม่ใช่อัลกอริทึม แต่เป็นข้อพิสูจน์ว่าเป็นไปไม่ได้ในการแก้ปัญหา นั่นคือไม่มีอัลกอริทึมดังกล่าวอยู่จริง แต่ ทุกข้อพิสูจน์ถึงความเป็นไปไม่ได้ ขึ้นอยู่กับความซับซ้อนเชิงซ้อนหรือสิ่งที่ผู้คนแสร้งทำเป็นว่าไม่พิจารณาความซับซ้อนเชิงซ้อน เพียงเพราะคุณเรียกบางสิ่งด้วยชื่อใหม่ มันก็ไม่ได้สูญเสียแก่นแท้ของมันไป

Vitaly: ปรากฎว่าคุณโชคดีเหรอ?

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

หนังสือฉบับพิมพ์ใหม่ “The Art of Multiprocessor Programming”

Alexey: คุณพูดสองสามคำเกี่ยวกับหนังสือของคุณ อาจไม่ใช่ความลับที่เลวร้ายที่สุดที่คุณเขียนหนังสือเกี่ยวกับมัลติเธรดที่โด่งดังที่สุดในโลก “ศิลปะของการเขียนโปรแกรมมัลติโปรเซสเซอร์”. มีอายุประมาณ 11 ปีแล้ว และตั้งแต่นั้นมาก็เพิ่งเปิดตัวเท่านั้น  แก้ไขการพิมพ์ซ้ำ. จะมีฉบับที่สองมั้ย?

มอริซ: ดีที่คุณถาม! อีกไม่นานนี้ อีกสามเดือนข้างหน้า มีผู้เขียนอีกสองคน เราได้เพิ่มเนื้อหามากขึ้น ปรับปรุงส่วนของ fork/join Parallelism เขียนส่วนบน MapReduce เพิ่มสิ่งใหม่ๆ มากมาย และโยนสิ่งที่ไม่จำเป็นออกไป - สิ่งที่น่าสนใจมากในขณะที่เขียน ฉบับพิมพ์ครั้งแรก แต่ปัจจุบันไม่มีแล้ว ผลที่ได้คือหนังสือที่มีการแก้ไขอย่างจริงจังมาก

Alexey: ทุกอย่างเสร็จสิ้นแล้ว เหลือเพียงปล่อยมันออกมาเหรอ?

มอริซ: ยังมีอีกหลายบทที่ยังต้องมีการปรับปรุง ผู้จัดพิมพ์ของเรา (ซึ่งฉันคิดว่าเกลียดเราอยู่แล้ว) ยังคงพยายามส่งข้อความว่าเราควรทำงานได้เร็วขึ้น เราช้ากว่ากำหนดมาก ตามทฤษฎีแล้ว เราน่าจะทำหนังสือเล่มนี้ได้เมื่อสองสามปีก่อน

Alexey: มีโอกาสที่จะได้หนังสือเวอร์ชันใหม่ก่อนวันคริสต์มาสไหม?

มอริซ: นี่คือเป้าหมายของเรา! แต่ฉันทำนายชัยชนะมาหลายครั้งจนไม่มีใครเชื่อฉันอีกต่อไป คุณไม่ควรเชื่อใจฉันมากเกินไปในเรื่องนี้เช่นกัน

Alexey: ไม่ว่าในกรณีใด นี่เป็นข่าวที่น่าอัศจรรย์ ฉันชอบหนังสือฉบับพิมพ์ครั้งแรกมาก คุณจะบอกว่าฉันเป็นแฟนก็ได้

มอริซ: ฉันหวังว่าฉบับใหม่จะคุ้มค่ากับความกระตือรือร้นอันแรงกล้าของคุณ ขอบคุณ!

หน่วยความจำทรานแซคชันถูกประดิษฐ์ขึ้นอย่างไร

Vitaly: คำถามถัดไปเกี่ยวกับหน่วยความจำทรานแซคชัน เท่าที่ฉันเข้าใจ คุณเป็นผู้บุกเบิกในสาขานี้ คุณคิดค้นมันขึ้นมาในเวลาที่ไม่มีใครคิดถึงเรื่องแบบนั้น ทำไมคุณถึงตัดสินใจย้ายมาสาขานี้? เหตุใดธุรกรรมจึงดูเหมือนสำคัญสำหรับคุณ คุณคิดว่าสักวันหนึ่งพวกเขาจะถูกนำมาใช้ในฮาร์ดแวร์หรือไม่ เพราะเหตุใด

มอริซ: ฉันรู้เรื่องธุรกรรมมาตั้งแต่สมัยเรียนวิจัย

Vitaly: ใช่ แต่นี่เป็นธุรกรรมที่แตกต่างกัน!

มอริซ: ฉันทำงานร่วมกับ Elliott Moss ในเรื่องการเก็บขยะแบบไม่ปิดกั้น ปัญหาของเราคือเราต้องการเปลี่ยนคำสองสามคำในหน่วยความจำแบบอะตอมมิก จากนั้นอัลกอริธึมก็จะง่ายขึ้น และอย่างน้อยบางคำก็จะมีประสิทธิภาพมากขึ้น โดยใช้ เปรียบเทียบและสลับ สำหรับ โหลดลิงค์ / ร้านค้าแบบมีเงื่อนไขโดยสถาปัตยกรรมแบบขนาน คุณสามารถทำอะไรบางอย่างได้ แต่มันไม่มีประสิทธิภาพและน่าเกลียดมาก เพราะคุณจะต้องจัดการกับเลเยอร์ทางอ้อม ฉันต้องการเปลี่ยนคำในความทรงจำและฉันต้องเปลี่ยนเพราะฉันสามารถเปลี่ยนได้เพียงตัวชี้เดียวเท่านั้น ดังนั้นคำเหล่านั้นจึงต้องชี้ไปที่โครงสร้างคล้ายไดเร็กทอรีบางประเภท เราคุยกันว่ามันจะดีแค่ไหนถ้าเราสามารถเปลี่ยนฮาร์ดแวร์เพื่อให้สามารถบันทึกพร้อมกันได้ ดูเหมือนว่า Elliott จะสังเกตเห็นสิ่งนี้: หากคุณดูที่โปรโตคอลการเชื่อมโยงกันของแคช โปรโตคอลเหล่านั้นได้จัดเตรียมฟังก์ชันการทำงานที่จำเป็นส่วนใหญ่ไว้แล้ว ในการทำธุรกรรมในแง่ดี โปรโตคอลการเชื่อมโยงกันของแคชจะสังเกตเห็นว่ามีความขัดแย้งด้านเวลา และแคชจะกลายเป็น เป็นโมฆะ. จะเกิดอะไรขึ้นหากคุณคาดเดาธุรกรรมบนแคชของคุณ และใช้กลไกโปรโตคอลการเชื่อมโยงกันเพื่อตรวจจับข้อขัดแย้ง สถาปัตยกรรมฮาร์ดแวร์เก็งกำไรนั้นง่ายต่อการออกแบบ ดังนั้นเราจึงเขียนอันนั้น สิ่งพิมพ์ครั้งแรก เกี่ยวกับหน่วยความจำทรานแซคชัน ในเวลาเดียวกัน บริษัทที่ฉันทำงานอยู่ Digital Equipment Corporation กำลังสร้างโปรเซสเซอร์ 64 บิตใหม่ที่เรียกว่า Alpha ฉันจึงไปนำเสนอต่อกลุ่มพัฒนา Alpha เกี่ยวกับหน่วยความจำธุรกรรมที่น่าทึ่งของเรา และพวกเขาถามว่า: บริษัทของเราจะมีรายได้เพิ่มขึ้นเท่าใดหากเราเพิ่มทั้งหมดนี้ลงในโปรเซสเซอร์โดยตรง และฉันก็ไม่มีคำตอบสำหรับเรื่องนี้เลย เพราะว่าฉันเป็นนักเทคโนโลยี ฉันไม่ใช่ผู้เชี่ยวชาญด้านการตลาด ฉันไม่มีอะไรจะตอบจริงๆ พวกเขาไม่ค่อยประทับใจที่ฉันไม่รู้อะไรเลย

วิตาลี: พันล้าน! แค่บอกว่าพันล้าน!

มอริซ: ใช่นั่นคือสิ่งที่ฉันควรจะพูด ตอนนี้ในยุคของสตาร์ทอัพและทุกอย่าง ฉันรู้วิธีเขียนแผนธุรกิจ คุณสามารถโกหกเรื่องขนาดของผลกำไรที่อาจเกิดขึ้นได้เล็กน้อย แต่สมัยนั้นมันดูไร้เดียงสาเลยบอกไปว่า “ไม่รู้” หากคุณดูประวัติของการตีพิมพ์เกี่ยวกับหน่วยความจำทรานแซคชัน คุณจะสังเกตเห็นว่าหลังจากหนึ่งปีมีการอ้างอิงหลายครั้ง และหลังจากนั้นประมาณสิบปีก็ไม่มีใครอ้างถึงบทความนี้เลย ราคาดังกล่าวปรากฏราวปี 2004 เมื่อมัลติคอร์ที่แท้จริงปรากฏขึ้น เมื่อผู้คนค้นพบว่าการเขียนโค้ดคู่ขนานสามารถสร้างรายได้ การวิจัยใหม่ก็เริ่มต้นขึ้น ราวี ราชวาร์ เขียนบทความซึ่งในทางใดทางหนึ่งได้นำแนวคิดของหน่วยความจำทรานแซคชันมาสู่กระแสหลัก (หมายเหตุบรรณาธิการ: มีบทความนี้ฉบับที่สอง ซึ่งเผยแพร่ในปี 2010 และหาได้ฟรี เป็น PDF). ทันใดนั้นผู้คนก็ตระหนักได้อย่างแน่ชัดว่าทั้งหมดนี้สามารถนำไปใช้ได้อย่างไร และอัลกอริธึมแบบเดิมที่มีการล็อคสามารถเร่งความเร็วได้อย่างไร ตัวอย่างที่ดีของสิ่งที่ในอดีตดูเหมือนเป็นเพียงปัญหาทางวิชาการที่น่าสนใจ ใช่ ถ้าคุณถามฉันตอนนั้นว่าฉันคิดว่าทั้งหมดนี้สำคัญในอนาคตหรือไม่ ฉันคงจะตอบว่า แน่นอน แต่เมื่อไม่ชัดเจนจริงๆ อาจจะใน 50 ปี? ในทางปฏิบัติปรากฏว่าเป็นเพียงทศวรรษเท่านั้น เป็นเรื่องดีมากเมื่อคุณทำอะไรสักอย่าง และหลังจากนั้นเพียงสิบปี ผู้คนก็สังเกตเห็นมัน

เหตุใดจึงคุ้มค่าที่จะทำการวิจัยในสาขาคอมพิวเตอร์แบบกระจาย

Vitaly: ถ้าเราพูดถึงงานวิจัยใหม่ คุณจะแนะนำอะไรแก่ผู้อ่านบ้าง - คอมพิวเตอร์แบบกระจายหรือมัลติคอร์ และเพราะเหตุใด 

มอริซ: ทุกวันนี้การหาโปรเซสเซอร์แบบมัลติคอร์เป็นเรื่องง่าย แต่การตั้งค่าระบบแบบกระจายที่แท้จริงนั้นยากกว่า ฉันเริ่มทำงานเพราะฉันต้องการทำสิ่งที่แตกต่างจากวิทยานิพนธ์ระดับปริญญาเอกของฉัน นี่คือคำแนะนำที่ฉันให้กับนักเรียนใหม่เสมอ: อย่าเขียนวิทยานิพนธ์ต่อ แต่ให้ลองไปในทิศทางใหม่ และมัลติเธรดก็เป็นเรื่องง่าย ฉันสามารถทดลองโดยใช้ส้อมของตัวเองทำงานบนแล็ปท็อปโดยไม่ต้องลุกจากเตียง แต่ถ้าจู่ๆ ฉันก็อยากจะสร้างระบบแบบกระจายจริงๆ ฉันจะต้องทำงานเยอะๆ ดึงดูดนักเรียน และอื่นๆ ฉันเป็นคนขี้เกียจและอยากจะทำงานบนมัลติคอร์มากกว่า การทดลองบนระบบมัลติคอร์นั้นง่ายกว่าการทดลองบนระบบแบบกระจาย เนื่องจากแม้แต่ในระบบแบบกระจายที่โง่เขลา ก็ยังมีปัจจัยหลายอย่างที่ต้องควบคุมมากเกินไป

Vitaly: ตอนนี้คุณกำลังค้นคว้าเกี่ยวกับบล็อคเชนอยู่หรือเปล่า? บทความใดที่คุณควรใส่ใจเป็นอันดับแรก

มอริซ: เพิ่งปรากฏตัว บทความที่ดีมากซึ่งฉันเขียนร่วมกับนักเรียนของฉัน Vikram Saraf โดยเฉพาะสำหรับการพูดคุยที่ การประชุม Tokenomcs ในปารีสเมื่อสามสัปดาห์ก่อน นี่คือบทความเกี่ยวกับระบบกระจายเชิงปฏิบัติ ซึ่งเราเสนอให้สร้าง Ethereum แบบมัลติเธรด ในปัจจุบัน สัญญาอัจฉริยะ (โค้ดที่ทำงานบนบล็อกเชน) ได้รับการดำเนินการตามลำดับ เราเขียนบทความก่อนหน้านี้ที่พูดถึงวิธีใช้ธุรกรรมเก็งกำไรเพื่อเร่งกระบวนการ เราใช้แนวคิดมากมายจากหน่วยความจำทรานแซคชันของซอฟต์แวร์ และกล่าวว่าหากคุณทำให้แนวคิดเหล่านี้เป็นส่วนหนึ่งของเครื่องเสมือน Etherium ทุกอย่างจะทำงานเร็วขึ้น แต่สำหรับสิ่งนี้ มีความจำเป็นที่จะต้องไม่มีความขัดแย้งของข้อมูลในสัญญา แล้วเราก็สรุปว่าในชีวิตจริงไม่มีความขัดแย้งเช่นนั้นจริงๆ แต่เราไม่มีทางรู้ได้เลย จากนั้นเกิดขึ้นกับเราว่าเรามีประวัติสัญญาจริงเกือบสิบปีอยู่ในมือของเรา ดังนั้นเราจึงทิ้ง Ethereum blockchain และถามตัวเองว่า: จะเกิดอะไรขึ้นหากบันทึกทางประวัติศาสตร์เหล่านี้ถูกดำเนินการพร้อมกัน? เราพบว่าความเร็วเพิ่มขึ้นอย่างมาก ในยุคแรก ๆ ของ Etherium ความเร็วเพิ่มขึ้นมาก แต่ทุกวันนี้ ทุกอย่างค่อนข้างซับซ้อนมากขึ้น เนื่องจากมีสัญญาน้อยลง และโอกาสที่จะเกิดข้อขัดแย้งกับข้อมูลที่ต้องมีการทำให้เป็นอนุกรมก็สูงขึ้น แต่ทั้งหมดนี้เป็นงานทดลองกับข้อมูลทางประวัติศาสตร์จริง ข้อดีของบล็อกเชนก็คือมันจดจำทุกสิ่งได้ตลอดไป เพื่อให้เราสามารถย้อนเวลากลับไปและศึกษาว่าจะเกิดอะไรขึ้นหากเราใช้อัลกอริธึมที่แตกต่างกันในการรันโค้ด คนในอดีตจะชอบแนวคิดใหม่ของเราอย่างไร? การวิจัยดังกล่าวทำได้ง่ายกว่าและสนุกสนานกว่ามาก เพราะมีสิ่งที่คอยติดตามทุกอย่างและบันทึกทุกอย่าง นี่เป็นสิ่งที่คล้ายกับสังคมวิทยามากกว่าการพัฒนาอัลกอริทึมอยู่แล้ว

การพัฒนาอัลกอริธึมหยุดลงแล้วและจะเดินหน้าต่อไปได้อย่างไร?

Vitaly: ถึงเวลาสำหรับคำถามเชิงทฤษฎีสุดท้าย! คุณรู้สึกว่าความก้าวหน้าในโครงสร้างข้อมูลที่มีการแข่งขันลดลงทุกปีหรือไม่? คุณคิดว่าความเข้าใจเกี่ยวกับโครงสร้างข้อมูลของเราถึงจุดสูงสุดแล้วหรือจะมีการปรับปรุงที่สำคัญบางประการหรือไม่ อาจมีแนวคิดอันชาญฉลาดที่สามารถเปลี่ยนแปลงทุกสิ่งได้อย่างสิ้นเชิง?

มอริซ: เราอาจมาถึงจุดสูงสุดในโครงสร้างข้อมูลสำหรับสถาปัตยกรรมแบบดั้งเดิมแล้ว แต่โครงสร้างข้อมูลสำหรับสถาปัตยกรรมใหม่ยังคงเป็นพื้นที่ที่น่าสนใจมาก หากคุณต้องการสร้างโครงสร้างข้อมูลสำหรับตัวเร่งฮาร์ดแวร์ เช่น โครงสร้างข้อมูลสำหรับ GPU จะแตกต่างจากโครงสร้างข้อมูลสำหรับ CPU อย่างมาก เมื่อคุณพัฒนาโครงสร้างข้อมูลสำหรับบล็อกเชน คุณจะต้องแฮชข้อมูลบางส่วนแล้วใส่ลงในสิ่งที่ต้องการ ต้นไม้เมิร์เคิลเพื่อป้องกันการปลอมแปลง ช่วงนี้มีกิจกรรมมากมายในพื้นที่นี้ โดยหลายๆ คนทำงานได้ดีมาก แต่ฉันคิดว่าสิ่งที่จะเกิดขึ้นคือสถาปัตยกรรมใหม่และแอปพลิเคชันใหม่จะนำไปสู่โครงสร้างข้อมูลใหม่ แอปพลิเคชันแบบเดิมและสถาปัตยกรรมแบบดั้งเดิม - อาจมีพื้นที่ให้สำรวจไม่มากนักอีกต่อไป แต่ถ้าคุณออกนอกเส้นทางที่ไม่มีใครเคยรู้จักและมองให้ไกลออกไป คุณจะเห็นเรื่องบ้าๆ ที่กระแสหลักไม่ได้สนใจ - นั่นคือสิ่งที่น่าตื่นเต้นเกิดขึ้นจริงๆ

Vitaly: ดังนั้นเพื่อที่จะเป็นนักวิจัยที่มีชื่อเสียง ฉันจึงต้องสร้างสถาปัตยกรรมของตัวเองขึ้นมา :)

มอริซ: คุณสามารถ "ขโมย" สถาปัตยกรรมใหม่ของคนอื่นได้ - ดูเหมือนง่ายกว่ามาก!

ทำงานที่ Brown University

Vitaly: คุณช่วยบอกเราเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ไหม มหาวิทยาลัยบราวน์คุณทำงานที่ไหน? ไม่ค่อยมีใครรู้จักเขามากนักในบริบทของเทคโนโลยีสารสนเทศ น้อยกว่าเกี่ยวกับ MIT เป็นต้น

มอริซ: มหาวิทยาลัยบราวน์เป็นหนึ่งในมหาวิทยาลัยที่เก่าแก่ที่สุดในสหรัฐอเมริกา ฉันคิดว่ามีเพียงฮาร์วาร์ดเท่านั้นที่แก่กว่านิดหน่อย บราวน์เป็นส่วนหนึ่งของสิ่งที่เรียกว่า ไอวี่ลีกซึ่งเป็นการรวมตัวของมหาวิทยาลัยที่เก่าแก่ที่สุดแปดแห่ง ฮาร์วาร์ด, บราวน์, คอร์เนล, เยล, โคลัมเบีย, ดาร์ตมัธ, เพนซิลเวเนีย, พรินซ์ตัน เป็นมหาวิทยาลัยที่เก่าแก่ เล็ก และค่อนข้างมีชนชั้นสูง จุดสนใจหลักคือการศึกษาศิลปศาสตร์ มันไม่ได้พยายามที่จะเป็นเหมือน MIT แต่ MIT มีความเชี่ยวชาญและมีเทคนิคมาก Brown เป็นสถานที่ที่ดีเยี่ยมในการศึกษาวรรณคดีรัสเซียหรือกรีกคลาสสิก และแน่นอน วิทยาการคอมพิวเตอร์ เน้นการศึกษาแบบองค์รวม นักเรียนของเราส่วนใหญ่ไปที่ Facebook, Apple, Google - ดังนั้นฉันคิดว่านักเรียนของเราไม่มีปัญหาในการหางานในอุตสาหกรรมนี้ ฉันไปทำงานที่ Brown เพราะเคยทำงานที่ Digital Equipment Corporation ในบอสตันมาก่อน เป็นบริษัทที่คิดค้นสิ่งที่น่าสนใจมากมาย แต่ปฏิเสธความสำคัญของคอมพิวเตอร์ส่วนบุคคล บริษัทที่มีชะตากรรมที่ยากลำบาก ซึ่งครั้งหนึ่งผู้ก่อตั้งเคยเป็นนักปฏิวัติรุ่นเยาว์ พวกเขาไม่เรียนรู้อะไรและไม่ลืมอะไรเลย ดังนั้น พวกเขาจึงเปลี่ยนจากนักปฏิวัติมาเป็นพวกปฏิกิริยาภายในเวลาประมาณสิบปี พวกเขาชอบพูดตลกว่าคอมพิวเตอร์ส่วนบุคคลอยู่ในโรงรถ ซึ่งแน่นอนว่าเป็นโรงรถร้าง เห็นได้ชัดว่าพวกเขาถูกทำลายโดยบริษัทที่มีความยืดหยุ่นมากกว่า เมื่อเห็นได้ชัดว่าบริษัทกำลังประสบปัญหา ฉันโทรหาเพื่อนของฉันที่เมืองบราวน์ ซึ่งอยู่ห่างจากบอสตันประมาณหนึ่งชั่วโมง ตอนนั้นฉันไม่อยากออกจากบอสตันเพราะมหาวิทยาลัยอื่นเปิดไม่มากนัก นี่เป็นยุคที่งานวิทยาการคอมพิวเตอร์มีไม่มากเท่าในปัจจุบัน และบราวน์เปิดเทอมแล้ว ฉันไม่ต้องย้ายบ้าน ไม่ต้องย้ายครอบครัว และฉันก็รักการใช้ชีวิตในบอสตันมาก! นั่นคือวิธีที่ฉันตัดสินใจไปบราวน์ ฉันชอบมัน. นักเรียนเก่งมาก ฉันไม่เคยลองไปที่อื่นเลยด้วยซ้ำ ระหว่างช่วงพักร้อน ฉันทำงานที่ Microsoft เป็นเวลาหนึ่งปี ไปที่ Technion ใน Haifa เป็นเวลาหนึ่งปี และตอนนี้ฉันจะอยู่ที่ Algorand ฉันมีเพื่อนร่วมงานมากมายทุกที่ ดังนั้นสถานที่ตั้งของห้องเรียนของเราจึงไม่สำคัญมากนัก แต่สิ่งที่สำคัญที่สุดคือนักเรียน พวกเขาเก่งที่สุดที่นี่ ฉันไม่เคยลองไปที่อื่นเลยเพราะว่าฉันมีความสุขมากที่นี่

แม้ว่าบราวน์จะมีชื่อเสียงในสหรัฐอเมริกา แต่เขาก็ไม่เป็นที่รู้จักในต่างประเทศอย่างน่าประหลาดใจ อย่างที่คุณเห็น ตอนนี้ฉันกำลังทำทุกอย่างที่เป็นไปได้เพื่อแก้ไขสถานการณ์นี้

ความแตกต่างระหว่างการวิจัยในมหาวิทยาลัยและภายในองค์กร

Vitaly: โอเค คำถามต่อไปเกี่ยวกับอุปกรณ์ดิจิทัล คุณอยู่ที่นั่นในฐานะนักวิจัย อะไรคือความแตกต่างระหว่างการทำงานในแผนก R&D ของบริษัทขนาดใหญ่และการทำงานในมหาวิทยาลัย? ข้อดีและข้อเสียคืออะไร?

มอริซ: ฉันทำงานที่ Microsoft เป็นเวลายี่สิบปี และทำงานอย่างใกล้ชิดกับพนักงานของ Sun Microsystems, Oracle, Facebook และปัจจุบันคือ Algorand จากทั้งหมดนี้ ฉันอยากจะบอกว่าเป็นไปได้ที่จะทำการวิจัยชั้นหนึ่งทั้งในบริษัทและในมหาวิทยาลัย ความแตกต่างที่สำคัญคือในบริษัทที่คุณทำงานร่วมกับเพื่อนร่วมงาน หากจู่ๆ ฉันก็เกิดไอเดียสำหรับโปรเจ็กต์ที่ยังไม่มี ฉันจะต้องโน้มน้าวเพื่อนๆ ว่านี่เป็นความคิดที่ดี ถ้าฉันอยู่ที่ Brown ฉันจะบอกนักเรียนว่า: มาทำงานเรื่องต้านแรงโน้มถ่วงกันเถอะ! พวกเขาจะออกไปหาคนอื่นหรือทำโปรเจ็กต์ ใช่ ฉันจะต้องหาเงินทุน ฉันจะต้องเขียนใบสมัครขอรับทุน และอื่นๆ ไม่ว่าในกรณีใด ก็จะมีนักเรียนจำนวนมากเสมอ และคุณจะสามารถตัดสินใจเพียงฝ่ายเดียวได้ แต่ที่มหาวิทยาลัย คุณมักจะไม่ได้ทำงานกับคนในระดับเดียวกับคุณ ในโลกของการวิจัยทางอุตสาหกรรม คุณต้องโน้มน้าวทุกคนก่อนว่าโครงการของคุณคุ้มค่าที่จะทำ ฉันไม่สามารถสั่งอะไรให้ใครได้ และวิธีการทำงานทั้งสองวิธีนี้มีคุณค่า เพราะถ้าคุณกำลังทำงานบางอย่างที่บ้าบอจริงๆ และเพื่อนร่วมงานของคุณโน้มน้าวได้ยาก มันก็จะง่ายกว่าที่จะโน้มน้าวนักศึกษาระดับบัณฑิตศึกษา โดยเฉพาะอย่างยิ่งถ้าคุณจ่ายเงินให้พวกเขา หากคุณกำลังทำงานบางอย่างที่ต้องใช้ประสบการณ์มากและความเชี่ยวชาญเชิงลึก คุณต้องการเพื่อนร่วมงานที่สามารถพูดว่า "ไม่ มันบังเอิญว่าฉันเข้าใจในด้านนี้และความคิดของคุณแย่ มันจะไม่ทำงาน" ซึ่งมีประโยชน์มากในแง่ของการเสียเวลา นอกจากนี้ หากในห้องปฏิบัติการอุตสาหกรรม คุณใช้เวลาเขียนรายงานเป็นจำนวนมาก ดังนั้นในมหาวิทยาลัยคุณจะใช้เวลานี้ในการพยายามหาเงิน ถ้าอยากให้นักเรียนได้ไปที่ไหนสักแห่ง ฉันก็ต้องหาเงินไปที่ไหนสักแห่ง และยิ่งตำแหน่งในมหาวิทยาลัยสำคัญมากเท่าไหร่คุณก็ยิ่งมีเวลาหาเงินมากขึ้นเท่านั้น ตอนนี้คุณรู้แล้วว่าฉันทำงานเพื่ออะไร - ขอทานมืออาชีพ! เหมือนภิกษุรูปหนึ่งที่ถือจานเดินไปมา โดยทั่วไปแล้ว กิจกรรมทั้งสองนี้จะส่งเสริมซึ่งกันและกัน นั่นเป็นเหตุผลที่ฉันพยายามที่จะมีชีวิตอยู่และรักษาเท้าของฉันบนพื้นในทั้งสองโลก

Vitaly: ดูเหมือนว่าการโน้มน้าวใจบริษัทนั้นยากกว่าการโน้มน้าวนักวิทยาศาสตร์คนอื่นๆ

มอริซ: ยากขึ้น และอื่นๆ อีกมากมาย นอกจากนี้ ในด้านต่างๆ ก็มีความแตกต่างกัน: บางแห่งดำเนินการวิจัยเต็มรูปแบบ ในขณะที่บางแห่งมุ่งเน้นไปที่หัวข้อของตน ถ้าฉันไปที่ Microsoft หรือ Facebook แล้วพูดว่า: มาต่อต้านแรงโน้มถ่วงกันเถอะ พวกเขาแทบจะไม่ซาบซึ้งเลย แต่ถ้าฉันพูดสิ่งเดียวกันนี้กับนักศึกษาระดับบัณฑิตศึกษาของฉัน พวกเขาก็น่าจะได้งานทันที แม้ว่าตอนนี้ฉันจะมีปัญหาก็ตาม เพราะท้ายที่สุดแล้ว ฉันต้องหาเงินเพื่อสิ่งนี้ แต่ตราบเท่าที่คุณต้องการทำบางสิ่งบางอย่างที่สอดคล้องกับเป้าหมายของบริษัท บริษัทนั้นก็สามารถเป็นสถานที่ที่ดีในการค้นคว้าข้อมูลได้

ไฮดรา และ SPTDC

Vitaly: คำถามของฉันใกล้จะจบลงแล้ว เรามาพูดคุยกันเล็กน้อยเกี่ยวกับการเดินทางไปรัสเซียที่กำลังจะมาถึง

มอริซ: ใช่ ฉันรอคอยที่จะกลับไปเซนต์ปีเตอร์สเบิร์ก

Alexey: ฉันรู้สึกเป็นเกียรติที่มีคุณอยู่กับเราในปีนี้ นี่เป็นครั้งที่สองของคุณในเซนต์ปีเตอร์สเบิร์กใช่ไหม

มอริซ: คนที่สามแล้ว!

Alexey: ฉันเข้าใจ แต่ สพฉ – อันที่สองอย่างแน่นอน ครั้งสุดท้ายที่โรงเรียนถูกเรียก เอสพีทีซีตอนนี้เราได้เปลี่ยนตัวอักษรหนึ่งตัว (C เป็น D, Concurrent เป็น Distributed) เพื่อเน้นย้ำว่าในปีนี้ยังมีประเด็นอื่นๆ ที่เกี่ยวข้องกับการประมวลผลแบบกระจายโดยเฉพาะอีกด้วย คุณช่วยพูดสักสองสามคำเกี่ยวกับรายงานของคุณที่โรงเรียนและ การประชุมไฮดรา?

มอริซ: ที่โรงเรียน ฉันต้องการพูดคุยเกี่ยวกับพื้นฐานของบล็อคเชน และสิ่งที่คุณสามารถทำได้ ฉันอยากจะแสดงให้เห็นว่าบล็อคเชนนั้นคล้ายคลึงกับการเขียนโปรแกรมแบบมัลติเธรดที่เราคุ้นเคยมาก แต่มีความแตกต่างในตัวเอง และความแตกต่างเหล่านี้เป็นสิ่งสำคัญที่ต้องเข้าใจ หากคุณทำผิดพลาดในเว็บแอปพลิเคชันทั่วไป มันน่ารำคาญมาก หากคุณเขียนโค้ด buggy ในแอปพลิเคชันทางการเงิน จะมีคนขโมยเงินของคุณทั้งหมดอย่างแน่นอน สิ่งเหล่านี้เป็นระดับความรับผิดชอบและผลที่ตามมาที่แตกต่างกันโดยสิ้นเชิง ฉันจะพูดคุยเล็กน้อยเกี่ยวกับการพิสูจน์การทำงาน เกี่ยวกับสัญญาอัจฉริยะ เกี่ยวกับธุรกรรมระหว่างบล็อกเชนที่แตกต่างกัน

จะมีวิทยากรคนอื่นๆ ที่ทำงานอยู่ข้างๆ ฉันซึ่งมีเรื่องจะพูดเกี่ยวกับบล็อคเชนด้วย และเราตกลงที่จะประสานงานกันเพื่อให้เรื่องราวของพวกเราเข้ากันได้ดี แต่สำหรับรายงานทางวิศวกรรม ฉันอยากจะบอกคำอธิบายที่เข้าใจได้กว้าง ๆ ให้กับผู้ชมว่าทำไมคุณไม่ควรเชื่อทุกสิ่งที่คุณได้ยินเกี่ยวกับบล็อคเชน เหตุใดบล็อคเชนจึงเป็นสาขาที่ยอดเยี่ยม มันเข้ากันได้อย่างไรกับแนวคิดอื่น ๆ ที่เป็นที่รู้จัก และเหตุใดเราจึงควรพิจารณาอย่างกล้าหาญ สู่อนาคต

Alexey: นอกจากนี้ ฉันอยากจะบอกว่าสิ่งนี้จะไม่เกิดขึ้นในรูปแบบของการพบปะหรือกลุ่มผู้ใช้เหมือนเมื่อสองปีที่แล้ว เราตัดสินใจจัดการประชุมเล็กๆ ใกล้โรงเรียน เหตุผลก็คือหลังจากพูดคุยกับ Peter Kuznetsov เราก็พบว่าโรงเรียนจำกัดจำนวนคนเพียงร้อยหรืออาจจะ 120 คนเท่านั้น ในขณะเดียวกัน มีวิศวกรจำนวนมากที่ต้องการสื่อสารกับคุณ เข้าร่วมการนำเสนอ และสนใจในหัวข้อนี้โดยทั่วไป ด้วยเหตุนี้เราจึงได้สร้างการประชุมใหม่ขึ้น เรียกว่าไฮดรา. ยังไงก็ตาม มีไอเดียอะไรบ้างว่าทำไมไฮดรา?

มอริซ: เพราะจะมีวิทยากรเจ็ดคนเหรอ? และหัวของพวกเขาก็จะถูกตัดออก แล้วลำโพงใหม่ก็จะเข้ามาแทนที่?

Alexey: ความคิดที่ยอดเยี่ยมสำหรับการเพิ่มวิทยากรหน้าใหม่ แต่ที่จริงแล้วมีเรื่องราวอยู่ที่นี่ จำตำนานของ Odysseus ที่เขาต้องล่องเรือไปมา ซิลลาและชาริบดิส? ไฮดราก็เหมือนกับชาริบดิส เรื่องราวก็คือเมื่อฉันพูดในการประชุมและพูดคุยเกี่ยวกับมัลติเธรด การประชุมครั้งนี้มีเพียงสองเพลงเท่านั้น ในตอนต้นของรายงาน ฉันบอกผู้ฟังในห้องโถงว่าตอนนี้พวกเขามีทางเลือกระหว่างซิลล่าและชาริบดิส สัตว์วิญญาณของฉันคือ Charybdis เพราะ Charybdis มีหลายหัว และธีมของฉันเป็นแบบมัลติเธรด ชื่อของการประชุมจะปรากฏดังนี้

ยังไงก็ตามเราหมดคำถามและเวลาแล้ว ขอขอบคุณเพื่อนๆ สำหรับการสัมภาษณ์ดีๆ แล้วพบกันที่ SPTDC School และ Hydra 2019!

คุณสามารถพูดคุยกับมอริซต่อได้ในการประชุม Hydra 2019 ซึ่งจะจัดขึ้นในวันที่ 11-12 กรกฎาคม 2019 ที่เซนต์ปีเตอร์สเบิร์ก เขาจะมาพร้อมรายงาน “บล็อคเชนและอนาคตของการประมวลผลแบบกระจาย”. สามารถซื้อตั๋วได้ บนเว็บไซต์อย่างเป็นทางการ.

ที่มา: will.com

เพิ่มความคิดเห็น