"الإجابة أسهل من الصمت" - مقابلة رائعة مع والد ذاكرة المعاملات موريس هيرليهي

"الإجابة أسهل من الصمت" - مقابلة رائعة مع والد ذاكرة المعاملات موريس هيرليهي

موريس هيرليهي - مالك اثنين جوائز ديكسترا. الأول مخصص للعمل "الانتظار دون التزامن" (جامعة براون) والثانية الأحدث، - "ذاكرة المعاملات: الدعم المعماري لهياكل البيانات الخالية من القفل" (جامعة فرجينيا للتكنولوجيا). تُمنح جائزة ديكسترا للعمل الذي ظهرت أهميته وتأثيره لمدة عشر سنوات على الأقل، ومن الواضح أن موريس هو أحد أشهر المتخصصين في هذا المجال. يعمل حاليًا أستاذاً في جامعة براون وله العديد من الإنجازات التي يبلغ طولها فقرة واحدة. يقوم حاليًا بالبحث في blockchain في سياق الحوسبة الموزعة الكلاسيكية.

في السابق، كان موريس قد جاء بالفعل إلى روسيا من أجل SPTCC (شريط فيديو) وعقد اجتماعًا ممتازًا لمجتمع مطوري JUG.ru Java في سانت بطرسبرغ (شريط فيديو).

هذا habrapost هو مقابلة رائعة مع موريس هيرليهي. ويناقش المواضيع التالية:

  • التفاعل بين الأوساط الأكاديمية والصناعة؛
  • مؤسسة أبحاث بلوكتشين؛
  • من أين تأتي الأفكار الخارقة؟ تأثير الشعبية؛
  • دكتوراه تحت إشراف باربرا ليسكوف؛
  • العالم ينتظر النواة المتعددة؛
  • العالم الجديد يجلب مشاكل جديدة. NVM، NUMA والقرصنة المعمارية؛
  • المترجمون مقابل المعالجات، RISC مقابل CISC، الذاكرة المشتركة مقابل تمرير الرسائل؛
  • فن كتابة كود هش متعدد الخيوط؛
  • كيفية تعليم الطلاب كتابة تعليمات برمجية معقدة متعددة الخيوط؛
  • طبعة جديدة من كتاب “فن برمجة المعالجات المتعددة”؛
  • كيف تم اختراع ذاكرة المعاملات؟   
  • لماذا يستحق إجراء البحوث في مجال الحوسبة الموزعة؟
  • هل توقف تطوير الخوارزميات، وكيفية المضي قدمًا؛
  • عمل في جامعة براون؛
  • الفرق بين البحث في الجامعة وداخل الشركة؛
  • هيدرا و SPTDC.

المقابلة تجري بواسطة :

فيتالي أكسينوف — حاليًا، باحث ما بعد الدكتوراه في IST Austria وموظف في قسم تقنيات الكمبيوتر في جامعة ITMO. يجري بحثًا في مجال النظرية والتطبيق لهياكل البيانات التنافسية. قبل العمل في IST، حصل على درجة الدكتوراه من جامعة باريس ديدرو وجامعة ITMO تحت إشراف البروفيسور بيتر كوزنتسوف.

أليكسي فيدوروف - منتج في JUG Ru Group، وهي شركة روسية تنظم مؤتمرات للمطورين. شارك أليكسي في التحضير لأكثر من 50 مؤتمرًا، وتتضمن سيرته الذاتية كل شيء بدءًا من منصب مهندس التطوير في Oracle (JCK، Java Platform Group) وحتى منصب المطور في Odnoklassniki.

فلاديمير سيتنيكوف - مهندس في Netcracker. عشر سنوات من العمل على أداء وقابلية التوسع لنظام التشغيل NetCracker، وهو برنامج يستخدمه مشغلو الاتصالات لأتمتة عمليات إدارة الشبكة ومعدات الشبكة. مهتم بقضايا أداء Java وOracle Database. مؤلف أكثر من اثني عشر تحسينًا للأداء في برنامج تشغيل PostgreSQL JDBC الرسمي.

التفاعل بين الأوساط الأكاديمية والصناعة

أليكسي: موريس، لقد عملت في بيئة أكاديمية لفترة طويلة جدًا والسؤال الأول هو التفاعل بين المجالين الأكاديمي والصناعي. هل يمكنك التحدث عن كيفية تغير التفاعلات بينهما مؤخرًا؟ ماذا حدث قبل 20-30 سنة وماذا يحدث الآن؟ 

موريس: لقد حاولت دائمًا العمل بشكل وثيق مع الشركات التجارية لأن لديهم مشاكل مثيرة للاهتمام. إنهم، كقاعدة عامة، ليسوا مهتمين للغاية بنشر نتائجهم أو بتفسيرات مفصلة لمشاكلهم للمجتمع العالمي. إنهم مهتمون فقط بحل هذه المشاكل. لقد عملت في مثل هذه الشركات لبعض الوقت. قضيت خمس سنوات في العمل بدوام كامل في معمل أبحاث في شركة Digital Equipment Corporation، التي كانت في السابق شركة كمبيوتر كبيرة. عملت يومًا واحدًا في الأسبوع في شركة Sun، وفي Microsoft، وفي Oracle، وقمت ببعض العمل في Facebook. الآن سأذهب في إجازة تفرغ علمي (يُسمح للأستاذ في إحدى الجامعات الأمريكية بأخذ مثل هذه الإجازة لمدة عام مرة واحدة كل ست سنوات تقريبًا) وأعمل في Algorand، هذه شركة عملات مشفرة في بوسطن. لقد كان العمل بشكل وثيق مع الشركات دائمًا أمرًا ممتعًا لأن هذه هي الطريقة التي تتعلم بها أشياء جديدة ومثيرة للاهتمام. قد تكون أيضًا الشخص الأول أو الثاني الذي ينشر مقالًا حول موضوع مختار، بدلاً من العمل على تحسين الحلول بشكل تدريجي للمشكلات التي يعمل عليها الجميع بالفعل.

أليكسي: هل يمكنك أن تخبرنا بمزيد من التفصيل كيف يحدث هذا؟

موريس: بالطبع. كما تعلمون، عندما كنت أعمل في شركة المعدات الرقمية، أنا وإليوت موس، قمنا باختراع ذاكرة المعاملات. لقد كانت فترة مثمرة للغاية عندما بدأ الجميع يهتمون بتكنولوجيا المعلومات. التوازي، بما في ذلك، على الرغم من عدم وجود أنظمة متعددة النواة بعد. خلال أيام Sun وOracle، عملت كثيرًا على هياكل البيانات المتوازية. في فيسبوك، عملت على مشروع blockchain الخاص بهم، والذي لا أستطيع التحدث عنه، ولكنني آمل أن يتم طرحه للعامة قريبًا. في العام المقبل، في ألجوراند، سأعمل ضمن مجموعة بحثية تدرس العقود الذكية.

أليكسي: أصبحت Blockchain موضوعًا شائعًا للغاية في السنوات القليلة الماضية. هل سيساعد هذا بحثك؟ ربما سيسهل الحصول على المنح أو توفير الوصول إلى الموارد من الشركات العاملة في الصناعة؟

موريس: لقد تلقيت بالفعل منحة صغيرة من مؤسسة إيثريوم. تعتبر شعبية blockchain مفيدة جدًا في إلهام الطلاب للعمل في هذا المجال. إنهم مهتمون جدًا به ومتحمسون للمشاركة فيه، لكن في بعض الأحيان لا يدركون أن البحث الذي يبدو مثيرًا من الخارج يتبين أنه يتضمن عملاً شاقًا حقًا. ومع ذلك، فأنا متحمس جدًا لاستخدام كل هذا الغموض المحيط بتقنية blockchain للمساعدة في جذب الطلاب. 

ولكن هذا ليس كل شيء. أنا عضو في المجلس الاستشاري للعديد من الشركات الناشئة في مجال blockchain. قد ينجح البعض منهم، وقد لا ينجح البعض الآخر، ولكن من المثير للاهتمام دائمًا رؤية أفكارهم ودراستها وتقديم المشورة للناس. الشيء الأكثر إثارة هو عندما تحذر الناس من القيام بشيء ما. تبدو العديد من الأشياء وكأنها فكرة جيدة في البداية، ولكن هل هي بالفعل؟

مؤسسة أبحاث Blockchain

فيتالي: يعتقد بعض الناس أن المستقبل يكمن في تقنية blockchain وخوارزمياتها. ويقول آخرون إنها مجرد فقاعة أخرى. هل يمكنك مشاركتنا رأيك في هذا الأمر؟

موريس: الكثير مما يحدث في عالم البلوكتشين خاطئ، وبعضه مجرد عملية احتيال، والكثير منه مبالغ فيه. ومع ذلك، أعتقد أن هناك أساسًا علميًا متينًا لهذه الدراسات. حقيقة أن عالم blockchain مليء بالاختلافات الأيديولوجية تظهر مستوى الإثارة والتفاني. ومن ناحية أخرى، فإن هذا ليس مفيدًا بشكل خاص للبحث العلمي. الآن، إذا قمت بنشر مقال يتحدث عن عيوب خوارزمية معينة، فإن رد الفعل الناتج لا يكون دائمًا علميًا بالكامل. في كثير من الأحيان يتخلص الناس من عواطفهم. أعتقد أن هذا النوع من الإثارة في هذا المجال قد يبدو جذابا للبعض، ولكن في نهاية المطاف، هناك قضايا علمية وهندسية حقيقية تحتاج إلى معالجة. هناك الكثير من علوم الكمبيوتر هنا.

فيتالي: إذن أنت تحاول وضع الأساس لأبحاث البلوكشين، أليس كذلك؟

موريس: أحاول وضع الأساس لنظام متين وسليم علميًا ورياضيًا. وجزء من المشكلة هو أنه في بعض الأحيان يتعين عليك مناقضة بعض المواقف القاسية للغاية لأشخاص آخرين وتجاهلها. أحيانًا يسألني الناس لماذا أعمل في منطقة لا يهتم بها سوى الإرهابيين وتجار المخدرات. رد الفعل هذا لا معنى له مثل سلوك المتابعين الذين يكررون كلماتك بشكل أعمى. أعتقد أن الحقيقة في مكان ما في المنتصف. سيكون لـ Blockchain تأثير عميق على المجتمع والاقتصاد العالمي. ولكن ربما لن يحدث هذا بفضل التكنولوجيا الحديثة. سوف تتطور التقنيات الحديثة وسيصبح ما سيسمى blockchain في المستقبل مهمًا للغاية. قد لا تبدو مثل سلاسل الكتل الحديثة، وهذا سؤال مفتوح.

إذا اخترع الناس تقنيات جديدة، فسوف يستمرون في تسميتها بـ blockchain. أعني، تمامًا كما أن لغة فورتران اليوم لا علاقة لها بلغة فورتران من الستينيات، لكن الجميع يستمر في تسميتها فورتران. نفس الشيء بالنسبة ليونيكس. ما يسمى "بلوكشين" سيستمر في إحداث ثورته. لكنني أشك في أن blockchain الجديد سيكون مثل ما يستمتع الجميع باستخدامه اليوم.

من أين تأتي الأفكار الخارقة؟ تأثير الشعبية

أليكسي: هل أدت شعبية blockchain إلى نتائج جديدة من وجهة نظر علمية؟ مزيد من التفاعل، والمزيد من الطلاب، والمزيد من الشركات في المنطقة. هل هناك بالفعل أي نتائج من هذه الزيادة في الشعبية؟

موريس: لقد أصبحت مهتمًا بهذا الأمر عندما سلمني أحدهم نشرة رسمية لشركة كانت قد جمعت للتو الكثير من المال. كتب عنه مهمة الجنرالات البيزنطيين، والتي أنا أكثر من مألوفة. من الواضح أن ما كتب في المنشور غير صحيح من الناحية الفنية. الأشخاص الذين كتبوا كل هذا لم يفهموا حقًا النموذج الكامن وراء المشكلة... ومع ذلك قامت هذه الشركة بجمع الكثير من المال. بعد ذلك، استبدلت الشركة هذه النشرة بهدوء بنسخة أكثر صحة - ولن أقول ما هو اسم هذه الشركة. إنهم ما زالوا موجودين ويعملون بشكل جيد للغاية. أقنعتني هذه الحادثة، أولاً، أن blockchain هو مجرد شكل من أشكال الحوسبة الموزعة. ثانياً، كانت عتبة الدخول (قبل أربع سنوات على الأقل) منخفضة للغاية. كان العاملون في هذا المجال نشيطين وذكيين للغاية، لكنهم لم يقرأوا الأوراق العلمية. لقد حاولوا إعادة اختراع الأشياء المعروفة وأخطأوا. واليوم تراجعت الدراما.

أليكسي: هذا مثير للاهتمام للغاية، لأنه قبل بضع سنوات كان لدينا اتجاه مختلف. إنه يشبه إلى حد ما تطوير الواجهة الأمامية، عندما قام مطورو الواجهة الأمامية المعتمدون على المتصفح بإعادة اختراع تقنيات كاملة كانت شائعة بالفعل في الواجهة الخلفية: بناء الأنظمة، والتكامل المستمر، وأشياء من هذا القبيل. 

موريس: أنا موافق. ولكن هذا ليس مفاجئا، لأن الأفكار الخارقة حقا تأتي دائما من خارج المجتمع الراسخ. ومن غير المرجح أن يقوم الباحثون الراسخون، وخاصة الأكاديميون الراسخون، بأي شيء رائد حقا. من السهل أن تكتب ورقة للمؤتمر التالي حول كيفية تحسين نتائج عملك السابق بشكل طفيف. اذهب إلى مؤتمر واجتمع مع الأصدقاء وتحدث عن نفس الأشياء. والأشخاص الذين ينطلقون بأفكار خارقة يأتون دائمًا من الخارج. إنهم لا يعرفون القواعد، ولا يعرفون اللغة، ولكن مع ذلك... إذا كنت ضمن مجتمع قائم، أنصحك بالانتباه إلى الأشياء الجديدة، إلى شيء لا يتناسب مع الصورة العامة. بمعنى ما، يمكن القيام بمحاولة للجمع بين التطورات الخارجية الأكثر مرونة والأساليب التي نفهمها بالفعل. كخطوة أولى، حاول إنشاء أساس علمي، ثم قم بتغييره بحيث يمكن تطبيقه على الأفكار الجديدة. أعتقد أن تقنية blockchain رائعة لكونها فكرة جديدة ومدمرة.

أليكسي: لماذا تعتقد أن هذا يحدث؟ لأن الناس "في الخارج" ليس لديهم أي حواجز محددة متأصلة في المجتمع؟

موريس: هناك نمط يحدث هنا. إذا قرأت تاريخ الانطباعيين في الرسم والفن بشكل عام، فقد رفض الفنانون المشهورون الانطباعية في وقت واحد. قالوا أنه كان نوعا من صبيانية. وبعد جيل، أصبح هذا الشكل الفني المرفوض سابقًا هو المعيار. ما أراه في مجال عملي: لم يكن مخترعو تقنية blockchain مهتمين بالسلطة، بل بزيادة المنشورات ومؤشر الاستشهادات، لقد أرادوا فقط القيام بشيء جيد. وهكذا جلسوا وبدأوا في القيام بذلك. لقد افتقروا إلى عمق تقني معين، لكن هذا أمر قابل للإصلاح. إن التوصل إلى أفكار إبداعية جديدة أصعب بكثير من تصحيح وتعزيز الأفكار غير الناضجة بما فيه الكفاية. بفضل هؤلاء المخترعين، لدي الآن شيء يجب القيام به!

أليكسي: هذا مشابه للفرق بين الشركات الناشئة والمشاريع القديمة. نحن نرث العديد من القيود في التفكير، والحواجز، والمتطلبات الخاصة، وما إلى ذلك.

موريس: تشبيه جيد هو الحوسبة الموزعة. فكر في blockchain كما لو كانت شركة ناشئة وحوسبة موزعة كشركة كبيرة وراسخة. الحوسبة الموزعة في طور الحصول عليها ودمجها مع blockchain.

الدكتوراه تحت إشراف باربرا ليسكوف

فيتالي: لا يزال لدينا الكثير من الأسئلة! كنا نبحث في خلفيتك وعثرنا على حقيقة مثيرة للاهتمام حول درجة الدكتوراه الخاصة بك. نعم، كان هذا منذ وقت طويل، ولكن يبدو أنه موضوع مهم. لقد حصلت على درجة الدكتوراه بتوجيه من نفسك باربرا ليسكوف! باربرا معروفة جدًا في مجتمع لغات البرمجة، وشخصية معروفة جدًا بشكل عام. ومن المنطقي أن يكون بحثك في مجال لغات البرمجة. كيف تحولت إلى الحوسبة المتوازية؟ لماذا قررت تغيير الموضوع؟

موريس: في ذلك الوقت، كانت باربرا ومجموعتها يبحثون فقط في الحوسبة الموزعة، والتي كانت فكرة جديدة جدًا. كان هناك أيضًا من قال إن الحوسبة الموزعة كانت هراء وأن تواصل أجهزة الكمبيوتر مع بعضها البعض لا معنى له. إحدى المشكلات التي يتم تناولها في الحوسبة الموزعة والتي تميزها عن الحوسبة المركزية هي التسامح مع الخطأ. بعد الكثير من البحث، قررنا أن لغة برمجة الحوسبة الموزعة تحتاج إلى شيء مثل المعاملات الذرية لأنه لا يمكنك أبدًا التأكد من نجاح المكالمة عن بعد. بمجرد إجراء المعاملات، تنشأ مشكلة إدارة التزامن. ثم كان هناك الكثير من العمل للحصول على هياكل بيانات المعاملات المتوازية للغاية. وبعد ذلك، عندما تخرجت، ذهبت إلى جامعة كارنيجي ميلون وبدأت في البحث عن موضوع للعمل عليه. وخطر لي أن الحوسبة انتقلت من أجهزة الكمبيوتر الفردية إلى شبكات أجهزة الكمبيوتر. ستكون المعالجات المتعددة بمثابة استمرار طبيعي للتقدم - فكلمة "متعددة النواة" لم تكن موجودة بعد. فكرت: ما هو المعادل للمعاملات الذرية لنظام متعدد النواة؟ بالتأكيد ليست معاملات عادية لأنها كبيرة جدًا وثقيلة. وهكذا توصلت إلى الفكرة قابلية الخطية وهذه هي الطريقة التي توصلت بها إلى المزامنة الخالية من الانتظار بالكامل. كانت هذه محاولة للإجابة على سؤال ما هو نظير المعاملات الذرية لنظام متعدد المعالجات مع ذاكرة مشتركة. للوهلة الأولى، قد يبدو هذا العمل مختلفًا تمامًا، لكنه في الواقع استمرار لنفس الموضوع.

العالم ينتظر النواة المتعددة

فيتالي: لقد ذكرت أنه في ذلك الوقت كان هناك عدد قليل جدًا من أجهزة الكمبيوتر متعددة النواة، أليس كذلك؟

موريس: لم يكونوا هناك. كان هناك العديد مما يسمى بالمعالجات المتعددة المتماثلة، والتي كانت متصلة بشكل أساسي بنفس الناقل. لم ينجح هذا بشكل جيد لأنه في كل مرة تقوم شركة جديدة بإنشاء شيء مماثل، تقوم شركة Intel بإصدار معالج واحد يتفوق على المعالجات المتعددة.

أليكسي: ألا يعني هذا أنه في تلك العصور القديمة كان الأمر مجرد دراسة نظرية؟

موريس: لم تكن دراسة نظرية، بل دراسة تأملية. ولم يكن كل ذلك يتعلق بالعمل بالعديد من النظريات، بل طرحنا فرضيات حول عمارة لم تكن موجودة في ذلك الوقت. هذا هو الغرض من البحث! لم تكن أي شركة لتفعل شيئًا كهذا، فقد كان كل ذلك شيئًا من المستقبل البعيد. في الواقع، كان هذا هو الحال حتى عام 2004، عندما ظهرت معالجات حقيقية متعددة النواة. نظرًا لارتفاع درجة حرارة المعالجات، يمكنك جعل المعالج أصغر حجمًا، لكن لا يمكنك جعله أسرع. وبسبب هذا، كان هناك انتقال إلى أبنية متعددة النواة. وهذا يعني أنه فجأة أصبح هناك استخدام لجميع المفاهيم التي طورناها في الماضي.

أليكسي: لماذا تعتقد أن المعالجات متعددة النواة ظهرت فقط في العقد الأول من القرن الحادي والعشرين؟ فلماذا تأخر الوقت؟

موريس: ويرجع ذلك إلى قيود الأجهزة. إن Intel و AMD وغيرها من الشركات جيدة جدًا في زيادة سرعة المعالج. عندما تصبح المعالجات في مرحلة ما صغيرة بما يكفي بحيث لا يمكنها زيادة سرعة الساعة لأن المعالجات ستبدأ في الاحتراق. يمكنك جعلها أصغر، ولكن ليس أسرع. ما في وسعهم - بدلاً من معالج صغير جدًا، يمكنهم تركيب ثمانية أو ستة عشر أو اثنين وثلاثين معالجًا في نفس حجم العلبة، حيث كان من الممكن احتواء معالج واحد فقط في السابق. الآن لديك اتصال متعدد وسريع بينهما لأنهما يتشاركان في ذاكرة التخزين المؤقت. لكن لا يمكنك إجبارهم على الجري بشكل أسرع - فهناك حد محدد جدًا للسرعة. لقد استمروا في التحسن شيئًا فشيئًا، ولكن ليس كثيرًا بعد الآن. وقفت قوانين الفيزياء في طريق التحسينات.

العالم الجديد يجلب مشاكل جديدة. NUMA وNVM والقرصنة المعمارية

أليكسي: يبدو معقولا جدا. مع المعالجات الجديدة متعددة النواة ظهرت مشاكل جديدة. هل توقعت أنت وزملائك هذه المشاكل؟ ربما كنت قد درستهم مقدما؟ في الدراسات النظرية، ليس من السهل في كثير من الأحيان التنبؤ بمثل هذه الأمور. عندما تحدث المشاكل، كيف كانت تلبي توقعاتك وتوقعات زملائك؟ أم أنها كانت جديدة تمامًا، وكان عليك أنت وزملائك قضاء الكثير من الوقت في حل المشكلات عند ظهورها؟

فيتالي: سأضيف إلى سؤال أليكسي: هل توقعت بشكل صحيح بنية المعالج أثناء دراستك النظرية؟

موريس: ليس 100%. لكنني أعتقد أنني وزملائي قمنا بعمل جيد في التنبؤ بالنوى المتعددة ذات الذاكرة المشتركة. أعتقد أننا توقعنا بشكل صحيح الصعوبات في تطوير هياكل البيانات المتوازية التي تعمل بدون أقفال. لقد كانت هياكل البيانات هذه مهمة للعديد من التطبيقات، ولكن ليس كلها، ولكن في كثير من الأحيان ما تحتاجه حقًا هو بنية بيانات غير قابلة للقفل. عندما اخترعناها، جادل الكثيرون بأن هذا هراء، وأن كل شيء يعمل بشكل جيد مع الأقفال. لقد توقعنا جيدًا أنه ستكون هناك حلول جاهزة للعديد من مشكلات البرمجة ومشاكل بنية البيانات. وكانت هناك أيضًا مشكلات أكثر تعقيدًا، مثل نوما - الوصول غير المتكافئ إلى الذاكرة. في الواقع، لم يتم أخذها في الاعتبار حتى تم اختراع المعالجات متعددة النواة لأنها كانت محددة للغاية. كان مجتمع البحث يعمل على أسئلة يمكن التنبؤ بها بشكل عام. كان على بعض مشاكل الأجهزة المرتبطة بمعماريات معينة أن تنتظر في الأجنحة - في الواقع، ظهور هذه البنيات. على سبيل المثال، لم يعمل أحد حقًا على هياكل البيانات الخاصة بوحدة معالجة الرسومات لأن وحدات معالجة الرسومات لم تكن موجودة في ذلك الوقت. على الرغم من أن الكثير من العمل قد تم إنجازه SIMDأصبحت هذه الخوارزميات جاهزة للاستخدام بمجرد توفر الأجهزة المناسبة. ومع ذلك، فمن المستحيل التنبؤ بكل شيء.

أليكسي: إذا فهمت بشكل صحيح، فإن NUMA هو نوع من التسوية بين التكلفة والأداء وبعض الأشياء الأخرى. هل لديك أي أفكار حول سبب ظهور NUMA متأخرًا جدًا؟

موريس: أعتقد أن NUMA موجود بسبب مشاكل في الأجهزة المستخدمة لإنتاج الذاكرة: كلما كانت المكونات بعيدة، كان الوصول إليها أبطأ. ومن ناحية أخرى، فإن القيمة الثانية لهذا التجريد هي توحيد الذاكرة. لذا فإن إحدى خصائص الحوسبة المتوازية هي أن جميع التجريدات مكسورة قليلاً. لو كان الوصول موحدًا تمامًا، لكانت كل الذاكرة على مسافة واحدة، لكن هذا مستحيل اقتصاديًا، وربما حتى ماديًا. ولذلك ينشأ هذا الصراع. إذا كتبت برنامجك كما لو كانت الذاكرة موحدة، فمن المرجح أن يكون صحيحًا. بمعنى أنه لن يعطي إجابات خاطئة. لكن أدائها لن يجذب النجوم من السماء أيضًا. وكذلك إذا كتبت أقفال الدوران بدون فهم التسلسل الهرمي لذاكرة التخزين المؤقت، سيكون الحظر نفسه صحيحا، ولكن يمكنك نسيان الأداء. بمعنى ما، عليك أن تكتب برامج تعيش فوق تجريد بسيط للغاية، ولكن عليك أن تتفوق على الأشخاص الذين أعطوك هذا التجريد: عليك أن تعرف أنه يوجد تحت التجريد بعض التسلسل الهرمي للذاكرة، وأن هناك حافلة بينك وبين هذه الذاكرة، وهكذا. وبالتالي، هناك بعض التعارض بين التجريدات المفيدة بشكل فردي، مما يقودنا إلى مشاكل ملموسة وعملية للغاية.

فيتالي: وماذا عن المستقبل؟ هل يمكنك التنبؤ بكيفية تطور المعالجات بعد ذلك؟ هناك فكرة أن إحدى الإجابات هي ذاكرة المعاملات. ربما لديك شيء آخر في المخزون.

موريس: هناك بعض التحديات الكبرى التي تنتظرنا. الأول هو أن الذاكرة المتماسكة هي فكرة تجريدية رائعة، ولكنها تبدأ في الانهيار في حالات خاصة. لذلك، على سبيل المثال، NUMA هو مثال حي لشيء حيث يمكنك الاستمرار في التظاهر بوجود ذاكرة موحدة. في الحقيقة لا، الإنتاجية ستجعلك تبكي. في مرحلة ما، سيتعين على المهندسين المعماريين التخلي عن فكرة بنية الذاكرة الواحدة، فلا يمكنك التظاهر إلى الأبد. ستكون هناك حاجة إلى نماذج برمجة جديدة تكون سهلة الاستخدام وقوية بما يكفي لجعل الأجهزة الأساسية فعالة. يعد هذا حلاً وسطًا صعبًا للغاية، لأنه إذا أظهرت للمبرمجين البنية المستخدمة بالفعل في الأجهزة، فسوف يصابون بالجنون. إنها معقدة للغاية وغير محمولة. إذا قمت بتقديم واجهة بسيطة جدًا، فسيكون الأداء ضعيفًا. وبالتالي، سيتعين إجراء العديد من المقايضات الصعبة للغاية لتوفير نماذج برمجة مفيدة قابلة للتطبيق على المعالجات الكبيرة متعددة النواة. لست متأكدًا من أن أي شخص آخر غير المتخصص قادر على البرمجة على جهاز كمبيوتر به 2000 نواة. وما لم تكن تقوم بعمليات حوسبة أو تشفير علمية أو متخصصة جدًا أو شيء من هذا القبيل - فلا يزال من غير الواضح على الإطلاق كيفية القيام بذلك بشكل صحيح. 

مجال آخر مماثل هو البنى المتخصصة. لقد كانت مسرعات الرسومات موجودة منذ فترة طويلة، لكنها أصبحت بمثابة مثال كلاسيكي لكيفية استخدام نوع متخصص من الحوسبة وتشغيله على شريحة مخصصة. وهذا يضيف تحدياته الخاصة: كيفية التواصل مع مثل هذا الجهاز، وكيفية برمجته. لقد عملت مؤخرًا على حل المشكلات في المنطقة بالقرب من حوسبة الذاكرة. تأخذ معالجًا صغيرًا وتلصقه على جزء كبير من الذاكرة بحيث تعمل الذاكرة بسرعة ذاكرة التخزين المؤقت L1 ثم تتصل بجهاز مثل TPU - المعالج مشغول بتحميل مهام جديدة إلى مركز الذاكرة لديك. يعد تصميم هياكل البيانات وبروتوكولات الاتصال لهذا النوع من الأشياء مثالًا آخر مثيرًا للاهتمام. لذلك ستستمر المعالجات والأجهزة المخصصة في رؤية التحسينات لبعض الوقت.

أليكسي: ماذا عن الذاكرة غير المتطايرة (ذاكرة غير متطايرة)?

موريس: أوه، هذا مثال عظيم آخر! سوف تغير NVM بشكل كبير الطريقة التي ننظر بها إلى أشياء مثل هياكل البيانات. تعد الذاكرة غير المتطايرة، إلى حد ما، بتسريع الأمور حقًا. لكن هذا لن يجعل الحياة أسهل لأن معظم المعالجات وذاكرة التخزين المؤقت والسجلات لا تزال متقلبة. عندما تبدأ بعد العطل، لن تكون حالتك وحالة ذاكرتك هي نفسها تمامًا كما كانت قبل العطل. أنا ممتن جدًا للأشخاص الذين يعملون في NVM - سيكون هناك الكثير مما يمكن للباحثين القيام به لفترة طويلة في محاولة اكتشاف شروط الصحة. تكون الحسابات صحيحة إذا تمكنت من النجاة من العطل الذي يتم فيه فقدان محتويات ذاكرة التخزين المؤقت والسجلات، ولكن الذاكرة الرئيسية تظل سليمة.

المترجمون مقابل المعالجات، RISC مقابل CISC، الذاكرة المشتركة مقابل تمرير الرسائل

فلاديمير: ما رأيك في معضلة "المترجمين مقابل المعالجات" من وجهة نظر مجموعة التعليمات؟ اسمحوا لي أن أشرح لأولئك الذين ليسوا على دراية: إذا ذهبنا إلى الذاكرة المنحرفة أو شيء مشابه، فيمكننا استخدام مجموعة بسيطة جدًا من الأوامر ونطلب من المترجم إنشاء تعليمات برمجية معقدة يمكنها الاستفادة من المزايا المكتشفة. أو يمكننا أن نسير في الاتجاه الآخر: تنفيذ تعليمات معقدة ومطالبة المعالج بإعادة ترتيب التعليمات وإجراء عمليات معالجة أخرى بها. ما رأيك في ذلك؟

موريس: ليس لدي إجابة على هذا السؤال. هذا النقاش مستمر منذ أربعة عقود. كان هناك وقت بين مختصر مجموعة من الأوامر و صعب كانت الحروب الأهلية خاضت من خلال مجموعة من الأوامر. لفترة من الوقت، فاز فريق RISC، ولكن بعد ذلك أعادت شركة إنتل بناء محركاتها بحيث تم استخدام مجموعة مخفضة من التعليمات داخليًا، وتم تصدير المجموعة الكاملة خارجيًا. ربما يكون هذا موضوعًا يجب على كل جيل جديد أن يجد فيه حلوله الوسطية ويتخذ قراراته الخاصة. من الصعب جدًا التنبؤ بأي من هذه الأشياء سيكون أفضل. لذا فإن أي تنبؤ أقوم به سيكون صحيحًا لفترة معينة، ثم كاذبًا مرة أخرى لفترة من الوقت، ثم صحيحًا مرة أخرى.

أليكسي: ما مدى شيوع الصناعة في أن تفوز بعض الأفكار لعدة عقود وتخسر ​​في العقود التالية؟ هل هناك أمثلة أخرى على هذه التغييرات الدورية؟

موريس: فيما يتعلق بموضوع الحوسبة الموزعة، هناك أشخاص يؤمنون بها ذكريات مشتركه والناس الذين يؤمنون تبادل الرسائل. في البداية، في الحوسبة الموزعة، تعني الحوسبة المتوازية تمرير الرسائل. ثم اكتشف أحدهم أنه من الأسهل البرمجة باستخدام الذاكرة المشتركة. قال الجانب الآخر إن الذاكرة المشتركة معقدة للغاية، لأنها تتطلب أقفالًا وما شابه، لذا من المفيد الانتقال إلى لغات لا يوجد فيها سوى تمرير الرسائل. نظر أحد الأشخاص إلى ما خرج من هذا وقال، "رائع، يبدو تطبيق المراسلة هذا يشبه إلى حد كبير الذاكرة المشتركة، لأنك تقوم بإنشاء الكثير والكثير من هذه الوحدات الصغيرة، وترسل رسائل إلى بعضها البعض، وكلها التعشيق"دعونا ننشئ قاعدة بيانات أفضل للذاكرة المشتركة!" كل هذا يتكرر مراراً وتكراراً، ومن المستحيل القول إن أحد الطرفين على حق بالتأكيد. سيهيمن أحد الطرفين دائمًا لأنه بمجرد أن يفوز أحدهما تقريبًا، يبتكر الناس مرارًا وتكرارًا طرقًا لتحسين الطرف الآخر.

فن كتابة كود هش متعدد الخيوط

أليكسي: هذا مثير للاهتمام للغاية. على سبيل المثال، عندما نكتب التعليمات البرمجية، بغض النظر عن لغة البرمجة، يتعين علينا عادةً إنشاء تجريدات مثل الخلايا التي يمكن قراءتها وكتابتها. ولكن في الواقع، على بعض المستويات المادية، قد يبدو هذا بمثابة إرسال رسالة عبر ناقل الأجهزة بين أجهزة كمبيوتر مختلفة وأجهزة أخرى. لقد اتضح أن العمل يحدث على كلا المستويين من التجريد في وقت واحد.

موريس: صحيح تمامًا أن الذاكرة المشتركة مبنية على تمرير الرسائل - الحافلات، وذاكرة التخزين المؤقت، وما إلى ذلك. لكن من الصعب كتابة برامج باستخدام تمرير الرسائل، لذا فإن الأجهزة تكذب عمدًا، وتتظاهر بأن لديك نوعًا من الذاكرة الموحدة. سيسهل عليك ذلك كتابة برامج بسيطة وصحيحة قبل أن يبدأ الأداء في التدهور. ثم ستقول: يبدو أن الوقت قد حان لتكوين صداقات مع ذاكرة التخزين المؤقت. ومن ثم تبدأ بالقلق بشأن موقع ذاكرة التخزين المؤقت، ومن هناك تبدأ الأمور. بمعنى ما، أنت تخترق التجريد: فأنت تعلم أنها ليست مجرد ذاكرة مسطحة وموحدة، وسوف تستخدم هذه المعرفة لكتابة برامج صديقة لذاكرة التخزين المؤقت. هذا ما عليك فعله في المشاكل الحقيقية. هذا الصراع بين التجريد الجميل والبسيط والرائع الذي تم تقديمه لك والتنفيذ المعقد للغاية للأجهزة الأساسية هو المكان الذي سيقدم فيه الجميع تنازلاتهم الخاصة. لدي كتاب عن المعالجات المتعددة والمزامنة، وفي مرحلة ما كنت سأكتب فصلاً عن هياكل البيانات في java.util.concurrent. إذا نظرت إليهم، أشياء مثل قوائم مع الإغفالات هذه أعمال فنية مذهلة. (ملاحظة المحرر: يجب على الأشخاص المطلعين على لغة Java إلقاء نظرة على التنفيذ على الأقل خريطة سكيبليست متزامنة, يمكنك إلقاء نظرة على الروابط في API и مصدر الرمز). لكن من وجهة نظري، سيكون من غير المسؤول إظهارها للطلاب، لأن بنية البيانات هذه تشبه نوعًا ما رجلًا في سيرك يركض على حبل مشدود فوق حفرة الدببة. إذا قمت بتغيير ولو تفصيل صغير واحد، فسوف ينهار الهيكل بأكمله. هذا الكود سريع وأنيق للغاية لمجرد أنه مكتوب بشكل مثالي، ولكن أدنى تغيير سيؤدي إلى الفشل التام. إذا أعطيت هذا الرمز كمثال للطلاب، فسيقولون على الفور: يمكنني فعل ذلك أيضًا! وبعد ذلك ستتحطم طائرة ما أو ينفجر مفاعل نووي، وسأكون مذنبًا بتزويدهم بالكثير من المعلومات في الوقت الخطأ.

أليكسي: عندما كنت أصغر سنًا، حاولت عدة مرات دراسة كود مصدر دوج لي، على سبيل المثال، java.util.concurrentنظرًا لأنه مفتوح المصدر، فمن السهل جدًا العثور عليه ومحاولة فهم ما يحدث هناك. لم يسير الأمر على ما يرام: في كثير من الأحيان، ليس من الواضح تمامًا لماذا قرر دوج القيام بشيء بهذه الطريقة عندما يفعله الآخرون بشكل مختلف. كيف تشرح هذه الأشياء لطلابك؟ هل هناك طريقة صحيحة معينة لوصف تفاصيل محددة لخوارزمية متشددة، على سبيل المثال؟ كيف تفعل هذا؟

موريس: مدرسو الرسم لديهم عبارة مبتذلة يتذكرونها أولاً: إذا كنت تريد الرسم مثل بيكاسو، فأنت بحاجة أولاً إلى تعلم كيفية رسم صور واقعية بسيطة، وفقط عندما تعرف القواعد يمكنك البدء في كسرها. إذا بدأت بخرق القواعد على الفور، فسينتهي بك الأمر في حالة من الفوضى. أولاً، أقوم بتعليم الطلاب كيفية كتابة تعليمات برمجية بسيطة وصحيحة دون القلق بشأن الأداء. ما أقوله هو أن هناك مشكلات توقيت معقدة كامنة هنا، لذا لا تقلق بشأن ذاكرات التخزين المؤقت، ولا تقلق بشأن نماذج الذاكرة، فقط تأكد من أن كل شيء يعمل بشكل صحيح. وهذا بالفعل صعب بما فيه الكفاية: فالبرمجة الحديثة ليست سهلة في حد ذاتها، خاصة للطلاب الجدد. وعندما يكون لديهم حدس حول كيفية كتابة البرامج الصحيحة، أقول: انظروا إلى هذين التطبيقين لـ Spinlock: أحدهما بطيء جدًا، والثاني أيضًا ليس جيدًا ولكنه أفضل. ومع ذلك، رياضيا الخوارزميتين هي نفسها. في الواقع، يستخدم أحدهم منطقة ذاكرة التخزين المؤقت. يعمل أحدهما على البيانات المخزنة مؤقتًا محليًا، بينما يقوم الآخر بتنفيذ العمليات بشكل متكرر عبر الناقل. لا يمكنك كتابة تعليمات برمجية فعالة إذا كنت لا تفهم ماهيتها، ولا تعرف كيفية كسر التجريد وإلقاء نظرة على البنية الأساسية. لكنك لن تكون قادرًا على البدء في القيام بذلك على الفور. هناك أشخاص يبدأون في القيام بذلك على الفور ويؤمنون بعبقريتهم، وعادة ما ينتهي الأمر بشكل سيء لأنهم لا يفهمون المبادئ. لا أحد يرسم مثل بيكاسو أو يكتب برامج مثل دوج لي الذي تخرج للتو من الكلية في أسبوعه الأول. يستغرق الأمر سنوات للوصول إلى هذا المستوى من المعرفة.

أليكسي: اتضح أنك تقسم المشكلة إلى قسمين: الأول هو الصحة والثاني هو الأداء؟

موريس: بالضبط. وبالضبط بهذا الترتيب. جزء من المشكلة هو أن الطلاب الجدد لا يفهمون أنه من الصعب تحقيق الصواب. للوهلة الأولى يقولون: من الواضح أن هذا صحيح، ولم يبق سوى تسريعه. لذلك أحيانًا أخبرهم عن خوارزمية غير صحيحة في البداية كما لو كانت صحيحة.

كيفية تعليم الطلاب كتابة تعليمات برمجية معقدة متعددة الخيوط

أليكسي: فقط لمعرفة ما إذا كان بإمكانهم استشعار المشكلة؟

موريس: أحذر دائمًا مقدمًا من أنني أحيانًا سأقترح خوارزميات غير صحيحة. لا ينبغي أن تخدع الناس. أقترح أن يأخذوا المعلومات بحذر. إذا قلت شيئًا وقلت: "انظر، من الواضح أن هذا صحيح" - فهذه إشارة إلى أنهم يحاولون خداعك في مكان ما، ويجب أن تبدأ في طرح الأسئلة. بعد ذلك، أحاول تشجيع الطلاب على الاستمرار في طرح الأسئلة، ثم أقترح: "ماذا سيحدث إذا تركنا الأمور كما هي؟" ويرون الخطأ على الفور. لكن إقناع الطلاب بأنهم بحاجة إلى القلق بشأن صحتهم أصعب بكثير مما يبدو للوهلة الأولى. العديد من هؤلاء الطلاب لديهم خبرة في البرمجة في المدرسة الثانوية، وقد حصل بعضهم على وظائف وقاموا بالبرمجة هناك، وهم جميعًا مفعمون بالثقة. هذا يشبه الجيش: عليك أولاً تغيير مزاجهم من أجل إقناعهم بالتعامل بصبر مع حل المشكلات التي تنشأ. أو ربما يكون الأمر مثل الرهبان البوذيين: يتعلمون أولاً التفكير بشأن الصواب، وبمجرد أن يفهموا طرق التفكير حول الصواب، يُسمح لهم بالانتقال إلى المستوى التالي والبدء في القلق بشأن الأداء.

أليكسي: أي أنك تعرض أحيانًا للطلاب أمثلة غير عاملة، وبفضل ذلك تحصل على تعليقات توضح ما إذا كانوا يفهمون جوهر المشكلة، وما إذا كان بإمكانهم العثور على الكود الخطأ والنتيجة الخاطئة. إذًا، هل الطلاب عادة ما يجعلك سعيدًا أم حزينًا؟

موريس: دائمًا ما يكتشف الطلاب الخطأ في نهاية المطاف. إذا بحثوا ببطء شديد، أطرح أسئلة إرشادية، وهنا من المهم أن تفهم أنه إذا لم تخدعهم أبدًا، فسوف يبدأون في إدراك كلماتك بلا وعي على أنها الحقيقة المطلقة. ثم سيشعرون بالملل ويبدأون في النوم أثناء قراءة الفيسبوك على الكمبيوتر المحمول الخاص بهم أثناء الفصل. ولكن عندما تخبرهم مسبقًا أنهم سيتعرضون للخداع، وسيبدوون أغبياء إذا لم يشعروا بالخدعة، فإنهم يصبحون أكثر يقظة. وهذا أمر جيد بطرق مختلفة. أود من الطلاب ألا يشككوا في فهمهم للمسألة فحسب، بل أن يشككوا أيضًا في سلطة المعلم. الفكرة هي أنه يمكن للطالب أن يرفع يده في أي وقت ويقول: أعتقد أن ما قلته للتو خطأ. إنها أداة تعليمية مهمة. لا أريد أن يجلس أي من الطلاب ويفكر في نفسه بصمت: كل هذا يبدو محض هراء، لكن رفع يدك أمر مخيف للغاية، وعلى أي حال، فهو أستاذ، لذا فإن كل ما يقوله هو الحقيقة. لذلك، إذا تم تحذيرهم مسبقًا من أنه ليس كل ما يقال صحيحًا بالضرورة، فسيكون لديهم حافز لإيلاء المزيد من الاهتمام للمادة. أوضح أنه لا بأس برفع يدك وطرح الأسئلة. قد يبدو سؤالك غبيًا أو ساذجًا، ولكن هذه هي الطريقة التي تظهر بها أفضل الأسئلة غالبًا.

أليكسي: مثير جدا للاهتمام. عادة ما يكون لدى الناس نوع من الحاجز النفسي الذي لا يسمح لهم بطرح سؤال على الأستاذ. خاصة إذا كان هناك الكثير من الأشخاص في الغرفة، ويخشى الجميع أن مناقشة سؤالك الغبي سوف يستغرق كل وقت هؤلاء الأشخاص. هل هناك أي حيل للتعامل مع هذا؟

موريس: كثيرًا ما أتوقف وأطرح أسئلة كلاسيكية. ما إذا كان البيان صحيحًا، أو كيف سيحلون المشكلة التي تتم مناقشتها. يعد هذا إجراءً رئيسيًا، خاصة في بداية الدرس عندما يشعر الأشخاص بالحرج من قول حتى أصغر الأشياء. أنت تسأل الطلاب سؤالاً ولا تقل شيئًا آخر. يسود الصمت، ويتوتر الجميع قليلًا، ويزداد التوتر، ثم فجأة لا يستطيع أحد تحمله، ينهار ويقول الإجابة. هذه هي الطريقة التي تقلب بها الوضع: الاستمرار في التزام الصمت يصبح أكثر صعوبة وإزعاجًا من الإجابة! هذه خدعة تربوية قياسية. يجب أن يعرف كل معلم في العالم كيفية القيام بذلك.

أليكسي: الآن لدينا عنوان ممتاز لهذه المقابلة: "الإجابة أسهل من التزام الصمت".

فيتالي: دعني أسألك مرة أخرى. أنت تعمل على البراهين الطوبولوجية. كيف شاركت في هذا، لأن الحوسبة الموزعة والطوبولوجيا شيئان مختلفان تمامًا!

موريس: هناك اتصال خفي هناك. عندما كنت طالبًا أدرس الرياضيات، درست الرياضيات البحتة. لم يكن لدي أي اهتمام حقيقي بالكمبيوتر حتى انتهت دراستي ووجدت نفسي في مواجهة الحاجة الملحة للبحث عن وظيفة. عندما كنت طالبًا، درست الطوبولوجيا الجبرية. بعد سنوات عديدة، أثناء العمل على مشكلة تسمى "مشكلة في اتفاقية k-Set"لقد استخدمت الرسوم البيانية لنمذجة المشكلة، وكما بدا في ذلك الوقت، فقد وجدت الحل. كان عليك فقط الجلوس والتجول في العد. حاول العثور على إجابة مناسبة على هذا الرسم البياني. لكن الخوارزمية الخاصة بي لم تنجح: فقد اتضح أنه سوف يركض في دوائر إلى الأبد. ولسوء الحظ، لم يكن من الممكن تفسير كل هذا باللغة الرسمية لنظرية الرسم البياني، وهي اللغة التي يعرفها جميع علماء الكمبيوتر. ثم تذكرت أنه منذ عدة سنوات مضت، في فصول الطوبولوجيا، استخدمنا هذا المفهوم "معقدة بسيطة"، وهو تعميم الرسوم البيانية لأبعاد أعلى. ثم سألت نفسي: ماذا سيحدث لو أعدنا صياغة المشكلة في ضوء المجمعات المبسطة؟ أصبحت هذه اللحظة الحاسمة. وباستخدام شكليات أكثر قوة، تصبح المشكلة فجأة أبسط بكثير. حارب الناس ضدها لفترة طويلة، باستخدام الرسوم البيانية، لكنهم لم يتمكنوا من فعل أي شيء. وحتى الآن لا يمكنهم ذلك - تبين أن الإجابة الصحيحة ليست خوارزمية، ولكنها دليل على استحالة حل المشكلة. وهذا يعني أن مثل هذه الخوارزمية ببساطة غير موجودة. لكن كل دليل على الاستحالة مبنية إما على مجمعات مبسطة أو على أشياء تظاهر الناس بعدم اعتبارها مجمعات مبسطة. إن مجرد تسمية شيء ما باسم جديد، لا يفقد جوهره.

فيتالي: اتضح أنك كنت محظوظا؟

موريس: إلى جانب الحظ، فهو أيضًا استعداد. هذا يعني أنه لا ينبغي عليك أن تنسى الأشياء "غير المفيدة" التي تعلمتها سابقًا. كلما تعلمت أشياء عديمة الفائدة، زادت الأفكار التي يمكنك استخلاصها عند مواجهة مشكلة جديدة. هذا النوع من مطابقة الأنماط البديهية مهم لأن... فلنفعل هذا، هذه سلسلة: في البداية اكتشفت أن الرسوم البيانية لم تعمل على الإطلاق أو لم تعمل على الإطلاق، ذكرني بشيء من أحداث ثمانية منذ سنوات وسنوات دراستي، عندما درسنا كل هذه المجمعات البسيطة. وهذا بدوره سمح لي بالعثور على كتابي القديم عن الطوبولوجيا وتحميله مرة أخرى في رأسي. لكن لولا تلك المعرفة القديمة، لما أحرزت أي تقدم في حل المشكلة الأصلية.

طبعة جديدة من كتاب “فن برمجة المعالجات المتعددة”

أليكسي: قلت بضع كلمات عن كتابك. ربما ليس سرًا أنك كتبت أشهر كتاب في العالم عن تعدد مؤشرات الترابط، "فن برمجة المعالجات المتعددة". يبلغ عمره بالفعل حوالي 11 عامًا ومنذ ذلك الحين تم إصداره فقط  إعادة طبع منقحة. هل سيكون هناك طبعة ثانية؟

موريس: من الجيد أنك سألت! سيكون قريبا جدا، في غضون ثلاثة أشهر أو نحو ذلك. هناك مؤلفان آخران، أضفنا الكثير من المواد، وقمنا بتحسين القسم الخاص بتوازي الشوكة/الانضمام، وكتبنا قسمًا على MapReduce، وأضفنا الكثير من الأشياء الجديدة وألقينا أشياء غير ضرورية - وهو أمر كان مثيرًا للاهتمام للغاية في وقت كتابة هذا التقرير الطبعة الأولى، ولكنها لم تعد موجودة اليوم. وكانت النتيجة كتابًا تمت مراجعته بجدية شديدة.

أليكسي: لقد تم كل شيء بالفعل، كل ما تبقى هو إطلاق سراحه؟

موريس: لا يزال هناك فصلان بحاجة إلى بعض العمل. لا يزال ناشرنا (الذي أعتقد أنه يكرهنا بالفعل) يحاول إيصال الرسالة التي مفادها أننا يجب أن نعمل بشكل أسرع. نحن متأخرون كثيرا عن الجدول الزمني. من الناحية النظرية، كان بإمكاننا إنجاز هذا الكتاب قبل عامين.

أليكسي: هل هناك فرصة للحصول على نسخة جديدة من الكتاب قبل عيد الميلاد؟

موريس: هذا هو هدفنا! لكنني تنبأت بالنصر مرات عديدة ولم يعد أحد يصدقني. ربما لا ينبغي عليك أن تثق بي كثيرًا في هذا الأمر أيضًا.

أليكسي: على أية حال، هذه أخبار رائعة. لقد أحببت حقًا الطبعة الأولى من الكتاب. يمكنك القول أنني معجب.

موريس: أتمنى أن تكون الطبعة الجديدة جديرة بحماسكم الشديد، شكرًا لكم!

كيف تم اختراع ذاكرة المعاملات

فيتالي: السؤال التالي يتعلق بذاكرة المعاملات. على حد علمي، أنت رائد في هذا المجال، اخترعته في وقت لم يكن أحد يفكر في مثل هذه الأمور. لماذا قررت الإنتقال إلى هذا المجال؟ لماذا بدت المعاملات مهمة بالنسبة لك؟ هل تعتقد أنه في يوم من الأيام سيتم تنفيذها في الأجهزة؟

موريس: لقد عرفت عن المعاملات منذ أيام بحثي في ​​الدراسات العليا.

فيتالي: نعم، لكن هذه معاملات مختلفة!

موريس: عملت مع إليوت موس على عدم حظر جمع القمامة. كانت مشكلتنا هي أننا أردنا تغيير بضع كلمات في الذاكرة ذريًا ومن ثم ستصبح الخوارزميات بسيطة جدًا، ويصبح بعضها على الأقل أكثر كفاءة. استخدام المقارنة والمبادلة إلى رابط التحميل/المتجر المشروطمن خلال البنية الموازية، من الممكن القيام بشيء ما، لكنه غير فعال وقبيح للغاية لأنه سيتعين عليك التعامل مع طبقات من عدم الاتجاه. أريد تغيير كلمات الذاكرة وأحتاج إلى التبديل لأنه لا يمكنني تغيير سوى مؤشر واحد، لذلك يجب أن تشير إلى نوع ما من البنية الشبيهة بالدليل. تحدثنا عن مدى روعة الأمر إذا تمكنا من تغيير الأجهزة حتى تتمكن من إجراء التسجيل المتزامن. يبدو أن إليوت قد لاحظ هذا: إذا نظرت إلى بروتوكولات تماسك ذاكرة التخزين المؤقت، فإنها توفر بالفعل معظم الوظائف المطلوبة. في معاملة متفائلة، سيلاحظ بروتوكول تماسك ذاكرة التخزين المؤقت أن هناك تعارضًا في التوقيت وستصبح ذاكرة التخزين المؤقت غير صالح. ماذا يحدث إذا قمت بتشغيل معاملة على ذاكرة التخزين المؤقت الخاصة بك بشكل تخميني واستخدمت آليات بروتوكول التماسك لاكتشاف التعارضات؟ كانت بنية الأجهزة التخمينية سهلة التصميم. لذلك كتبنا ذلك المنشور الأول حول ذاكرة المعاملات. وفي الوقت نفسه، كانت الشركة التي كنت أعمل بها، شركة المعدات الرقمية، تقوم بإنشاء معالج جديد 64 بت يسمى Alpha. لذلك ذهبت وقدمت عرضًا تقديميًا لمجموعة تطوير Alpha حول ذاكرتنا المعاملاتية المذهلة وسألوا: ما مقدار الإيرادات الإضافية التي ستحصل عليها شركتنا إذا أضفنا كل هذا مباشرة إلى المعالج؟ ولم يكن لدي أي إجابة على هذا السؤال، لأنني متخصص في التكنولوجيا، ولست متخصصًا في التسويق. لم يكن لدي حقًا ما أجيب عليه. لم يكونوا معجبين جدًا بأنني لم أكن أعرف شيئًا.

فيتالي: المليارات! فقط قل مليارات!

موريس: نعم، هذا ما كان يجب أن أقوله. الآن، في عصر الشركات الناشئة وكل شيء، أعرف كيفية كتابة خطة عمل. أنه يمكنك الكذب قليلاً بشأن حجم ربحك المحتمل. لكن في تلك الأيام بدا الأمر ساذجًا، لذلك قلت: "لا أعرف". إذا نظرت إلى تاريخ المنشور الخاص بذاكرة المعاملات، فستلاحظ أنه بعد مرور عام كانت هناك عدة إشارات إليها، ثم لمدة عشر سنوات تقريبًا لم يستشهد أحد بهذه الورقة على الإطلاق. ظهرت هذه الاقتباسات في عام 2004 تقريبًا، عندما ظهرت النوى المتعددة الحقيقية. عندما اكتشف الناس أن كتابة التعليمات البرمجية الموازية يمكن أن تدر المال، بدأت أبحاث جديدة. رافي راجوار كتب مقالا، والتي قدمت بطريقة ما مفهوم ذاكرة المعاملات إلى الاتجاه السائد. (ملاحظة المحرر: هناك نسخة ثانية من هذه المقالة، صدرت في عام 2010 وهي متاحة مجانًا بصيغة PDF). فجأة أدرك الناس بالضبط كيف يمكن استخدام كل هذا، وكيف يمكن تسريع الخوارزميات التقليدية ذات الأقفال. مثال جيد لشيء بدا في الماضي وكأنه مجرد مشكلة أكاديمية مثيرة للاهتمام. ونعم، لو سألتني في ذلك الوقت عما إذا كنت أعتقد أن كل هذا سيكون مهما في المستقبل، لقلت: بالطبع، ولكن متى ليس واضحا بالضبط. ربما في 50 عاما؟ ومن الناحية العملية، تبين أن هذا لم يكن سوى عقد من الزمان. من الجميل جدًا أن تفعل شيئًا ما وبعد عشر سنوات فقط يلاحظه الناس.

لماذا يستحق إجراء البحوث في مجال الحوسبة الموزعة

فيتالي: إذا تحدثنا عن بحث جديد، فبماذا تنصح القراء - الحوسبة الموزعة أم متعددة النواة ولماذا؟ 

موريس: من السهل هذه الأيام الحصول على معالج متعدد النواة، ولكن من الصعب إعداد نظام موزع حقيقي. لقد بدأت العمل عليها لأنني أردت أن أفعل شيئًا مختلفًا عن أطروحة الدكتوراه الخاصة بي. هذه هي النصيحة التي أقدمها دائمًا للطلاب الجدد: لا تكتب تكملة لأطروحتك، بل حاول السير في اتجاه جديد. وأيضًا، تعد تعدد العمليات أمرًا سهلاً. يمكنني تجربة تشغيل الشوكة الخاصة بي على الكمبيوتر المحمول الخاص بي دون النهوض من السرير. ولكن إذا أردت فجأة إنشاء نظام موزع حقيقي، فسيتعين علي القيام بالكثير من العمل، وجذب الطلاب، وما إلى ذلك. أنا شخص كسول وأفضل العمل على النواة المتعددة. إن تجربة الأنظمة متعددة النواة أسهل أيضًا من إجراء التجارب على الأنظمة الموزعة، لأنه حتى في النظام الموزع الغبي هناك العديد من العوامل التي تحتاج إلى التحكم فيها.

فيتالي: ماذا تفعل الآن، هل تبحث عن blockchain؟ ما هي المقالات التي يجب أن تنتبه إليها أولاً؟

موريس: ظهرت مؤخرا مقال جيد جدا، والتي كتبتها مع تلميذي فيكرام ساراف، خصيصًا لمحادثة في مؤتمر Tokenomcs في باريس قبل ثلاثة أسابيع. هذه مقالة عن الأنظمة الموزعة العملية، والتي نقترح فيها جعل الإيثريوم متعدد الخيوط. حاليًا، يتم تنفيذ العقود الذكية (الكود الذي يعمل على blockchain) بشكل تسلسلي. لقد كتبنا مقالاً سابقاً تحدثنا فيه عن طريقة استخدام معاملات المضاربة لتسريع العملية. لقد أخذنا الكثير من الأفكار من ذاكرة المعاملات البرمجية وقلنا أنه إذا جعلت هذه الأفكار جزءًا من جهاز Etherium الظاهري، فسيعمل كل شيء بشكل أسرع. ولكن لهذا من الضروري عدم وجود تعارض في البيانات في العقود. ثم افترضنا أنه لا توجد مثل هذه الصراعات في الحياة الواقعية. ولكن لم يكن لدينا وسيلة لمعرفة ذلك. ثم خطر ببالنا أن لدينا ما يقرب من عقد من تاريخ العقود الحقيقي بين أيدينا، لذلك تخلينا عن سلسلة كتل الإيثريوم وسألنا أنفسنا: ماذا سيحدث إذا تم تنفيذ هذه السجلات التاريخية بالتوازي؟ لقد وجدنا زيادة كبيرة في السرعة. في الأيام الأولى لـ Ethereum، زادت السرعة بشكل كبير، ولكن اليوم أصبح كل شيء أكثر تعقيدًا إلى حد ما، نظرًا لوجود عدد أقل من العقود واحتمالية الصراعات حول البيانات التي تتطلب التسلسل أصبحت أعلى. لكن كل هذا عمل تجريبي ببيانات تاريخية حقيقية. والشيء الجميل في blockchain هو أنه يتذكر كل شيء إلى الأبد، حتى نتمكن من العودة في الوقت المناسب ودراسة ما كان سيحدث لو استخدمنا خوارزميات مختلفة لتشغيل التعليمات البرمجية. كيف كان الناس في الماضي سيحبون فكرتنا الجديدة؟ إن إجراء مثل هذا البحث أسهل بكثير وأكثر متعة، لأن هناك شيئًا يراقب كل شيء ويسجل كل شيء. وهذا بالفعل شيء يشبه علم الاجتماع أكثر من تطوير الخوارزميات.

هل توقف تطوير الخوارزميات وكيفية المضي قدمًا؟

فيتالي: حان الوقت للسؤال النظري الأخير! هل يبدو أن التقدم في هياكل البيانات التنافسية يتناقص كل عام؟ هل تعتقد أننا وصلنا إلى مرحلة مستقرة في فهمنا لهياكل البيانات أم أنه سيكون هناك بعض التحسينات الرئيسية؟ ربما هناك بعض الأفكار الذكية التي يمكن أن تغير كل شيء تمامًا؟

موريس: ربما وصلنا إلى مرحلة هضبة في هياكل البيانات الخاصة بالبنى التقليدية. لكن هياكل البيانات للبنى الجديدة لا تزال مجالًا واعدًا للغاية. إذا كنت تريد إنشاء هياكل بيانات لمسرعات الأجهزة، على سبيل المثال، فإن هياكل البيانات الخاصة بوحدة معالجة الرسومات تختلف تمامًا عن هياكل البيانات الخاصة بوحدة المعالجة المركزية. عندما تقوم بتطوير هياكل البيانات لسلاسل الكتل، فإنك تحتاج إلى تجزئة أجزاء من البيانات ثم وضعها في شيء مثل شجرة ميركل، لمنع التزوير. لقد حدثت زيادة في النشاط في هذا المجال مؤخرًا، حيث قام الكثيرون بعمل جيد جدًا. لكنني أعتقد أن ما سيحدث هو أن البنى الجديدة والتطبيقات الجديدة ستؤدي إلى هياكل بيانات جديدة. التطبيقات القديمة والهندسة المعمارية التقليدية - قد لا يكون هناك مجال كبير للاستكشاف بعد الآن. ولكن إذا خرجت عن المسار المعتاد ونظرت إلى ما هو أبعد من الحواف، فسوف ترى أشياء مجنونة لا يأخذها التيار الرئيسي على محمل الجد - وهذا هو المكان الذي تحدث فيه كل الأشياء المثيرة حقًا.

فيتالي: لذلك، لكي أصبح باحثًا مشهورًا جدًا، كان علي أن أخترع معمارًا خاصًا بي :)

موريس: يمكنك "سرقة" الهندسة المعمارية الجديدة لشخص آخر - يبدو الأمر أسهل بكثير!

تعمل في جامعة براون

فيتالي: هل يمكن أن تخبرنا المزيد عنه جامعة براونأين تعمل؟ لا يُعرف الكثير عنه في سياق تكنولوجيا المعلومات. أقل من معهد ماساتشوستس للتكنولوجيا، على سبيل المثال.

موريس: جامعة براون هي واحدة من أقدم الجامعات في الولايات المتحدة. أعتقد أن هارفارد فقط هي الأكبر سناً قليلاً. براون جزء مما يسمى لبلاب الدوري، وهي عبارة عن مجموعة من أقدم ثماني جامعات. هارفارد، براون، كورنيل، ييل، كولومبيا، دارتموث، بنسلفانيا، برينستون. إنها جامعة قديمة وصغيرة وأرستقراطية بعض الشيء. وينصب التركيز الرئيسي على تعليم الفنون الليبرالية. إنه لا يحاول أن يكون مثل معهد ماساتشوستس للتكنولوجيا، معهد ماساتشوستس للتكنولوجيا متخصص وتقني للغاية. تعد براون مكانًا رائعًا لدراسة الأدب الروسي أو اليونانية الكلاسيكية، وبالطبع علوم الكمبيوتر. ويركز على التعليم الشامل. يذهب معظم طلابنا إلى Facebook وApple وGoogle - لذلك أعتقد أن طلابنا ليس لديهم مشاكل في العثور على وظيفة في هذه الصناعة. ذهبت للعمل في شركة Brown لأنني عملت سابقًا في شركة Digital Equipment Corporation في بوسطن. لقد اخترعت هذه الشركة العديد من الأشياء المثيرة للاهتمام، لكنها أنكرت أهمية أجهزة الكمبيوتر الشخصية. شركة ذات مصير صعب، كان مؤسسوها ذات يوم من الثوار الشباب، لم يتعلموا شيئًا ولم ينسوا شيئًا، وهكذا تحولوا من ثوريين إلى رجعيين في غضون حوالي اثنتي عشرة سنة. كانوا يحبون المزاح بأن أجهزة الكمبيوتر الشخصية تنتمي إلى المرآب، وهو مرآب مهجور بالطبع. من الواضح تمامًا أنه تم تدميرها من قبل شركات أكثر مرونة. عندما أصبح من الواضح أن الشركة كانت في ورطة، اتصلت بصديق لي في براون، التي تبعد حوالي ساعة خارج بوسطن. لم أكن أرغب في مغادرة بوسطن في ذلك الوقت لأنه لم يكن هناك الكثير من الوظائف الشاغرة في الجامعات الأخرى. كان هذا وقتًا لم يكن فيه العديد من الوظائف في علوم الكمبيوتر كما هو الحال الآن. وكان لدى براون فرصة سانحة، ولم أضطر إلى تغيير منزلي، ولم أضطر إلى تغيير عائلتي، وأنا أحب العيش في بوسطن حقًا! هكذا قررت الذهاب إلى براون. أحبها. الطلاب رائعون، لذلك لم أحاول أبدًا الذهاب إلى مكان آخر. خلال إجازتي، عملت في مايكروسوفت لمدة عام، وذهبت إلى التخنيون في حيفا لمدة عام، والآن سأكون في ألغوراند. لدي العديد من الزملاء في كل مكان، وبالتالي فإن الموقع الفعلي لفصولنا الدراسية ليس بهذه الأهمية. لكن الشيء الأكثر أهمية هو الطلاب، فهم الأفضل هنا. لم أحاول أبدًا الذهاب إلى مكان آخر لأنني سعيد جدًا هنا.

ولكن على الرغم من شهرة براون في الولايات المتحدة، إلا أنه غير معروف في الخارج على نحو مدهش. وكما ترون، فأنا الآن أفعل كل ما هو ممكن لتصحيح هذا الوضع.

الفرق بين البحث في الجامعة والبحث داخل الشركة

فيتالي: حسنًا، السؤال التالي يتعلق بالمعدات الرقمية. لقد كنت هناك كباحث. ما الفرق بين العمل في قسم البحث والتطوير في شركة كبيرة والعمل في إحدى الجامعات؟ ما هي مزايا وعيوب؟

موريس: عملت لمدة عشرين عامًا في Microsoft، وعملت بشكل وثيق مع موظفي Sun Microsystems، وOracle، وFacebook، والآن Algorand. بناءً على كل هذا، أريد أن أقول إنه من الممكن إجراء أبحاث من الدرجة الأولى في الشركات والجامعات. الفرق المهم هو أنك تعمل في الشركة مع زملائك. إذا خطرت لي فجأة فكرة لمشروع غير موجود بعد، يجب أن أقنع زملائي بأن هذه فكرة جيدة. إذا كنت في جامعة براون، فيمكنني أن أقول لطلابي: دعونا نعمل على مكافحة الجاذبية! إما أن يغادروا لشخص آخر أو يقومون بمشروع. نعم، سأحتاج إلى العثور على تمويل، وسأحتاج إلى كتابة طلب منحة، وما إلى ذلك. على أية حال، سيكون هناك دائمًا العديد من الطلاب، وستكون قادرًا على اتخاذ القرارات من جانب واحد. لكن في الجامعة، على الأرجح لن تعمل مع أشخاص من نفس مستواك. في عالم الأبحاث الصناعية، عليك أولاً إقناع الجميع بأن مشروعك يستحق البدء فيه. لا أستطيع أن أطلب أي شيء لأي شخص. وكلتا طريقتي العمل هاتين قيمتان، لأنه إذا كنت تعمل على شيء مجنون حقًا ويصعب إقناع زملائك، فمن الأسهل إقناع طلاب الدراسات العليا - خاصة إذا كنت تدفع لهم. إذا كنت تعمل على شيء يتطلب الكثير من الخبرة والخبرة العميقة، فأنت بحاجة إلى زملاء يمكنهم أن يقولوا "لا، لقد حدث أنني أفهم في هذا المجال وفكرتك سيئة، ولن تنجح". وهذا مفيد جدًا من حيث إضاعة الوقت. أيضًا، إذا كنت تقضي الكثير من الوقت في كتابة التقارير في المختبرات الصناعية، فإنك في الجامعة تقضي هذا الوقت في محاولة العثور على المال. إذا أردت أن يتمكن الطلاب من الذهاب إلى مكان ما، فيجب أن أجد المال لذلك في مكان آخر. وكلما كان منصبك في الجامعة أكثر أهمية، كلما زاد الوقت الذي يتعين عليك إنفاقه لجمع الأموال. والآن أنت تعرف ما الذي أعمل من أجله - متسول محترف! مثل أحد هؤلاء الرهبان الذي يتجول حاملاً طبق القرابين. بشكل عام، هذين النشاطين يكملان بعضهما البعض. ولهذا السبب أحاول أن أعيش وأبقي قدمي على الأرض في كلا العالمين.

فيتالي: يبدو أن إقناع شركة ما أصعب من إقناع علماء آخرين.

موريس: أصعب وأكثر من ذلك بكثير. علاوة على ذلك، يختلف الأمر في مجالات مختلفة: يقوم البعض بإجراء بحث واسع النطاق، بينما يركز البعض الآخر على موضوعهم. إذا ذهبت إلى Microsoft أو Facebook وقلت: دعونا نصنع مضادًا للجاذبية، فلن يقدروا ذلك. ولكن إذا قلت نفس الشيء بالضبط لطلاب الدراسات العليا، فمن المرجح أن يبدأوا العمل على الفور، على الرغم من أنني سأواجه الآن مشاكل - بعد كل شيء، أحتاج إلى العثور على المال لذلك. ولكن طالما أنك تريد أن تفعل شيئًا يتماشى مع أهداف الشركة، فيمكن أن تكون هذه الشركة مكانًا جيدًا جدًا لإجراء الأبحاث.

هيدرا و SPTDC

فيتالي: أسئلتي على وشك الانتهاء، لذلك دعونا نتحدث قليلا عن الرحلة القادمة إلى روسيا.

موريس: نعم، أنا أتطلع إلى العودة إلى سانت بطرسبرغ.

أليكسي: يشرفني أن تكون معنا هذا العام. هذه هي المرة الثانية لك في سانت بطرسبرغ، أليس كذلك؟

موريس: بالفعل الثالث!

أليكسي: أنا أفهم، ولكن سبدك – بالتأكيد الثاني. آخر مرة تم استدعاء المدرسة سبتكك، قمنا الآن بتغيير حرف واحد (C إلى D، Concurrent to Distributed) للتأكيد على أن هناك المزيد من المجالات المرتبطة تحديدًا بالحوسبة الموزعة هذا العام. هل يمكنك قول بضع كلمات عن تقاريرك في المدرسة و مؤتمر الهيدرا?

موريس: في المدرسة، أريد أن أتحدث عن أساسيات blockchain وما يمكنك فعله بها. أود أن أبين أن سلاسل الكتل تشبه إلى حد كبير البرمجة متعددة الخيوط التي نعرفها، ولكن مع الفروق الدقيقة الخاصة بها، ومن المهم فهم هذه الاختلافات. إذا ارتكبت خطأً في تطبيق ويب عادي، فهذا أمر مزعج للغاية. إذا قمت بكتابة رمز عربات التي تجرها الدواب في أحد التطبيقات المالية، فمن المؤكد أن شخصا ما سوف يسرق كل أموالك. هذه مستويات مختلفة تمامًا من المسؤولية والعواقب. سأتحدث قليلاً عن إثبات العمل، وعن العقود الذكية، وعن المعاملات بين سلاسل الكتل المختلفة.

سيكون هناك متحدثون آخرون يعملون بجانبي ولديهم أيضًا ما يقولونه حول blockchain، وقد اتفقنا على التنسيق مع بعضنا البعض حتى تتناسب قصصنا معًا بشكل جيد. لكن بالنسبة للتقرير الهندسي، أريد أن أقدم لجمهور عريض تفسيرًا مفهومًا لماذا لا يجب أن تصدق كل ما تسمعه عن blockchain، ولماذا تعد blockchain مجالًا رائعًا، وكيف تتناسب مع الأفكار المعروفة الأخرى، ولماذا يجب علينا أن ننظر بجرأة الى المستقبل.

أليكسي: بالإضافة إلى ذلك، أريد أن أقول إن هذا لن يتم بتنسيق لقاء أو مجموعة مستخدمين، كما كان الحال قبل عامين. قررنا عقد مؤتمر صغير بالقرب من المدرسة. والسبب هو أنه بعد التواصل مع بيتر كوزنتسوف، أدركنا أن المدرسة تقتصر على مائة فقط، وربما 120 شخصًا. وفي نفس الوقت هناك الكثير من المهندسين الذين يريدون التواصل معك وحضور العروض التقديمية ويكونون مهتمين بالموضوع بشكل عام. ولهذا السبب قمنا بإنشاء مؤتمر جديد تسمى هيدرا. بالمناسبة، أي أفكار لماذا هيدرا؟

موريس: لأنه سيكون هناك سبعة متحدثين؟ ويمكن قطع رؤوسهم وينمو مكانهم متحدثون جدد؟

أليكسي: فكرة عظيمة لتنمية المتحدثين الجدد. ولكن في الواقع، هناك قصة هنا. تذكر أسطورة أوديسيوس، حيث كان عليه أن يبحر بين سيلا وشاريبديس؟ هيدرا شيء مثل Charybdis. القصة هي أنني تحدثت ذات مرة في مؤتمر وتحدثت عن تعدد المواضيع. لم يكن هناك سوى مسارين في هذا المؤتمر. في بداية التقرير، أخبرت الجمهور في القاعة أن لديهم الآن خيارًا بين سيلا وشاريبديس. حيواني الروحي هو Charybdis لأن Charybdis له رؤوس عديدة وموضوعي متعدد الخيوط. هكذا تظهر أسماء المؤتمرات.

على أية حال، لقد نفد لدينا الأسئلة والوقت. لذا، شكرًا لكم أيها الأصدقاء على هذه المقابلة الرائعة، ونراكم في مدرسة SPTDC وهيدرا 2019!

يمكنكم مواصلة محادثتكم مع موريس في مؤتمر هيدرا 2019 الذي سيعقد يومي 11 و12 يوليو 2019 في سانت بطرسبرغ. وسوف يأتي مع التقرير «البلوكشين ومستقبل الحوسبة الموزعة». يمكن شراء التذاكر على الموقع الرسمي.

المصدر: www.habr.com

إضافة تعليق