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


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


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


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


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

المقابلات التي أجراها:


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


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


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


تفاعل المجال الأكاديمي والصناعة


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


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


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


موريس: بالطبع. كما تعلمون ، عندما عملت في شركة Digital Equipment Corporation و I و Elliot Moss ، اخترعنا ذاكرة المعاملات. لقد كانت فترة مثمرة للغاية عندما بدأ الجميع يهتمون بتكنولوجيا المعلومات. التزامن بما في ذلك ، على الرغم من أن الأنظمة متعددة النواة لم تكن موجودة بعد. في أيام Sun و Oracle ، عملت كثيرًا على هياكل البيانات المتوازية. في Facebook ، شاركت في مشروع blockchain الخاص بهم ، والذي لا يمكنني التحدث عنه ، لكنني آمل أن يصبح قريبًا عامًا. في العام المقبل ، في Algorand ، سأعمل في مجموعة بحثية ، لدراسة العقود الذكية.


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


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


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


مؤسسة أبحاث Blockchain


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


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


فيتالي: هذا هو ، تحاول وضع الأساس للبحث blockchain ، أليس كذلك؟


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


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


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


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


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


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


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


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


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


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


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


دكتوراه بقيادة باربرا Liskov


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


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


العالم تحسبا multicore


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


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


أليكسي: هل هذا يعني أنه في تلك الأيام الخوالي ، كانت دراسة نظرية أكثر؟


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


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


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


إلى العالم الجديد - مشاكل جديدة. NUMA ، NVM و Hacking Architecture


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


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


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


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


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


: ? , ? , . , - .


: . , – , . , , NUMA -, , . – , . - , . , , . , , , . . , . , , , . , - 2000- . , - – , .


. , , . : , . near memory computing . , L1-, TPU – . – . , .


: ( non-volatile memory )?


: , ! NVM , , , . , , . , , . , , . , NVM – , . , , , .


, RISC vs CISC, shared memory vs message passing


: « » ? , : - , , . : . ?


: . . , . - RISC- , Intel , , . , , . , . , , , - , .


: , ? ?


: , , . . - , . , – , , , . - , : «, , - , , , – !». , , . , , , .



: . , , , , . - , - . , .


: , – , . , , , - . , . : , . , -. : , , . , . , , – , . , java.util.concurrent . , – . ( : , Java, ConcurrentSkipListMap, API c ). , , , . , . , , . , : ! - , , .


: , , , java.util.concurrent , , , . : , , - , -. ? , ? ?


: , : , , , . , . , . : , , , , . : , . , , : : , – , . , . , . , , . , , , . . , , , . , , . , .


: , : – , – ?


: . , . , , . : , , , . , .



: , ?


: , . . . - : «, » — , - , . , , : « , ?». . , , , . , - , . - : , . : , .


: , , , , , . , ?


: . , , , – . , Facebook . , , , , . . , , . , : , , – . . , - : , , , , , – . , , , . , – . , .


: . , . , , . - , ?


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


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


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


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


فيتالي: إذن ، كنت محظوظًا فقط؟


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


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


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


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


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


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


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


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


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


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


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


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


موريس: لقد عرفت عن المعاملات منذ الدراسات العليا.


فيتالي: نعم ، لكن هذه معاملات أخرى!


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


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


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


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


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


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


فيتالي: ماذا تفعل الآن ، واستكشاف blockchain؟ ما هي المواد التي يجب الانتباه إليها أولاً؟


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


توقف تطوير الخوارزميات وكيفية العيش عليها


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


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


فيتالي: لذلك ، لكي أكون باحثًا مشهورًا ، اضطررت إلى ابتكار معماري الخاص بي :-)


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


وظائف في جامعة براون


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


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


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


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


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


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


: , , .


: , . , -: - , - . Microsoft Facebook : , . , , – . , , .


Hydra SPTDC


: , .


: , .


: , . , ?


: !


: , SPTDC – . SPTCC , (C D, Concurrent Distributed), , , , . Hydra ?


: . , , , . - – . , - . . proof-of-work, -, .


, , , . , , , – , , .


: , , . . , , , 120 . , , , . Hydra . , , ?


: ? , ?


: . , . , ? – . , - . . , . , , – . .


, . , , , , SPTDC Hydra 2019!


Hydra 2019, 11-12 2019 -. «Blockchains and the future of distributed computing» . .

Source: https://habr.com/ru/post/ar458936/


All Articles