مايكل سكوت يبلغ من العمر 34 عامًا كأستاذ علوم الكمبيوتر بجامعة روتشستر ، وكان عميدًا لمدة خمس سنوات في جامعة ويسكونسن - ماديسون. يشارك في البحث في مجال البرمجة المتوازية والموزعة وتصميم اللغة ويعلم الطلاب ذلك.
يعرف العالم مايكل من كتاب براغماتية لغة البرمجة ، وفاز خوارزميات العمل للمزامنة القابلة للتطوير على معالجات متعددة الذاكرة المشتركة بجائزة Dijkstra باعتبارها واحدة من أشهرها في مجال الحوسبة الموزعة. يمكنك أيضًا معرفته كمؤلف لخوارزمية مايكل سكوت .
جنبا إلى جنب مع دوغ لي ، قام بتطوير تلك الخوارزميات غير المحظورة وقوائم الانتظار المتزامنة التي تدير مكتبات Java. سمح إدخال "بنيات البيانات المزدوجة" في JavaSE 6 بتحسين 10 أضعاف في أداء ThreadPoolExecutor
.
المحتويات:
- بداية الوظيفي ، جامعة روتشستر. مشروع شارلوت ، الوشق ؛
- واجهة متماسكة قابلة للتطوير من IEEE ، قفل MCS ؛
- البقاء على قيد الحياة في عالم دائم التغير ؛
- هل الطلاب يحصلون على الغباء؟ الاتجاهات العالمية ، التدويل ؛
- العمل الفعال مع الطلاب
- كيفية مواكبة إعداد دورات تدريبية وكتب جديدة ؛
- العلاقة بين الأعمال والأكاديمية ؛
- التنفيذ العملي للأفكار. MCS ، MS ، CLH ، JSR 166 ، العمل مع Doug Lee وأكثر من ذلك بكثير ؛
- ذاكرة المعاملات ؛
- أبنية جديدة. انتصار وثيق للذاكرة المعاملات ؛
- ذاكرة غير متطايرة ، Optane DIMM ، أجهزة فائقة السرعة ؛
- الاتجاه الكبير المقبل. هياكل البيانات المزدوجة. هيدرا.
المقابلات التي أجراها:
يعمل فيتالي أكسينوف حاليًا في مرحلة ما بعد الالتحام في IST Austria وموظف في قسم تكنولوجيا الكمبيوتر بجامعة ITMO. شارك في البحث في نظرية وممارسة هياكل البيانات التنافسية. قبل انضمامه إلى IST ، حصل على درجة الدكتوراه من جامعة باريس ديدرو وجامعة ITMO تحت إشراف البروفيسور بيتر كوزنتسوف.
أليكسي فيدوروف منتج في مجموعة JUG Ru Group ، وهي شركة روسية تنظم مؤتمرات للمطورين. شارك أليكسي في التحضير لأكثر من 50 مؤتمراً ، وفي سيرته الذاتية لا يوجد شيء من منصب مهندس التطوير في Oracle (JCK ، Java Platform Group) ، وينتهي بمكانة devrell في Odnoklassniki.
فلاديمير سيتنيكوف مهندس في Netcracker. منذ عشر سنوات ، كان يعمل على أداء وقابلية تطوير NetCracker OS ، وهو برنامج يستخدمه مشغلو الاتصالات لأتمتة عمليات إدارة معدات الشبكات والشبكات. إنه مهتم بقضايا أداء Java و Oracle Database. مؤلف أكثر من عشرة تحسينات في الأداء في برنامج تشغيل PostgreSQL JDBC الرسمي.
بداية الوظيفي ، جامعة روتشستر. مشروع شارلوت ، لغة الوشق.
أليكسي : في البداية ، أردت أن أخبرك أننا في روسيا نحب جميعًا علوم الكمبيوتر وعلوم البيانات والخوارزميات. الحق في غير لائق. نقرأ جميعًا
كتاب Cormen و Leiserson و Rivest . لذلك ، ينبغي أن يكون المؤتمر والمدرسة القادمة وهذه المقابلة نفسها شائعة للغاية. تلقينا العديد من الأسئلة لهذه المقابلة من الطلاب والمبرمجين وأعضاء المجتمع ، لذلك نحن ممتنون جدًا لك على هذه الفرصة. هل تجعل علوم الكمبيوتر نفس الحب في الولايات المتحدة الأمريكية؟
مايكل : منطقتنا متنوعة للغاية ، ولها اتجاهات كثيرة ، وتؤثر على المجتمع بطرق مختلفة بحيث يصعب علي الإجابة عليك بشكل لا لبس فيه. ولكن الحقيقة هي أنه بفضلها على مدى السنوات الثلاثين الماضية ، حدثت تغيرات هائلة في الأعمال التجارية والصناعة والفن والمجتمع ككل.
فيتالي : لنبدأ بشيء بعيد. في العديد من الجامعات ، هناك شيء يشبه التخصص في مجال معين. بالنسبة لجامعة كارنيجي ميلون ، هذه عبارة عن حوسبة متوازية ، وبالنسبة لمعهد ماساتشوستس للتكنولوجيا ، والتشفير ، والروبوتات ، ومتعددة. هل هناك مثل هذا التخصص في جامعة روتشستر؟
مايكل : بصراحة ، أود أن أقول إن CMU و MIT متخصصون في جميع المجالات. في قسمنا ، كان الاهتمام الأكبر دائمًا بالذكاء الاصطناعي. يعمل نصف الأشخاص الذين يعملون معنا في تفاعل الذكاء الاصطناعى أو التفاعل بين الإنسان والحاسوب - هذه النسبة أكبر منها في الإدارات الأخرى ، وكانت دائماً كذلك. لكن عندما كنت في الجامعة ، لم يكن لدي أي دورات في الذكاء الاصطناعى ، ولم أعمل قط في هذا المجال. لذا فإن قسمي متخصص في مشكلة لا علاقة لي بها. إن العزاء هو أن المشكلة الثانية الأكثر أهمية بالنسبة لقسمنا هي البرمجة المتوازية ومتعددة الخيوط ، أي تخصصي.
فيتالي : لقد بدأت دراسة علوم الكمبيوتر عندما كان مجال البرمجة متعددة الخيوط في بدايته. توضح قائمة منشوراتك أن الأعمال الأولى تتعلق بمجموعة واسعة من المشكلات: إدارة الذاكرة في الأنظمة متعددة الخيوط ، وأنظمة الملفات الموزعة ، وأنظمة التشغيل. لماذا هذا التنوع؟ هل حاولت أن تجد مكانك في مجتمع البحث؟
مايكل : كطالبة ، شاركت في
مشروع شارلوت بجامعة ويسكونسن ، والذي طور أحد أنظمة التشغيل الموزعة الأولى. هناك عملت مع رافائيل فينكل ومارفن سليمان. تم تكريس رسالتي لتطوير لغة خاصة ببرمجيات النظام للأنظمة الموزعة - والآن نسي الجميع بالفعل ، والحمد لله. لقد أنشأت لغة برمجة Lynx ، والتي كان من المفترض أن تبسط عملية إنشاء الخوادم لنظام تشغيل موزع مع ارتباط ضعيف. منذ ذلك الوقت كنت أعمل بشكل رئيسي في أنظمة التشغيل ، افترضت أن حياتي المهنية ستكون مرتبطة بها بشكل أساسي. لكن جامعة روتشستر كانت صغيرة جدًا ، ولهذا السبب ، كانت هناك مجموعات مختلفة تتواصل بشكل وثيق مع بعضها البعض. لم يكن هناك عشرات المتخصصين الآخرين في نظام التشغيل الذين يمكنني التواصل معهم ، لذلك كانت جميع الاتصالات مع أشخاص يعملون في مناطق مختلفة تمامًا. لقد أحببت ذلك حقًا ، كوني اختصاصيًا هو ميزة كبيرة بالنسبة لي. بالتحدث على وجه التحديد عن هياكل البيانات متعددة الخيوط وخوارزميات التزامن ، بدأت في التعامل معها بشكل كامل عن طريق الصدفة.
واجهة IEEE قابلة للتطوير المتماسك ، قفل MCS.
فيتالي : هل يمكنك إعطاء المزيد من التفاصيل حول هذا؟
مايكل : هذه قصة مضحكة لم أتعب من إخبار الجميع بها. لقد حدث ذلك في مؤتمر
ASPLOS في بوسطن - في أواخر الثمانينيات أو أوائل التسعينيات. حضر المؤتمر جون ميلور كرومي ، خريج كلية التدريس لدينا. كنت أعرفه ، لكن قبل ذلك لم نجر بحثًا مشتركًا. قدمت ماري ورنون من ويسكونسن عرضًا تقديميًا عن نظام المعالجات المتعددة الذي
طوروه في ويسكونسن:
ويسكونسن مولتيكوب . في Multicube ، على مستوى الحديد ، كانت هناك آلية التزامن تسمى Q on Sync Bit ، ثم أعيدت تسميتها في Q on Lock Bit ، لأنه يمكن نطقها مثل اسم جبن كولبي ، أي أنها كانت تورية. إذا كنت مهتمًا بآليات multithreading ، فربما تعلم أن Colby أصبحت في النهاية آلية التزامن لمعيار IEEE Scalable Coherent Interface. لقد كانت آلية قفل أوجدت مؤشرات من ذاكرة تخزين مؤقت إلى أخرى على مستوى الحديد ، بحيث يعرف كل حامل قفل دوره. عندما سمعنا أنا وجون عن ذلك ، نظرنا إلى بعضنا البعض وقلنا: لماذا نفعل ذلك على مستوى الحديد؟ لا يمكنك أن تفعل الشيء نفسه مع المقارنة والمبادلة؟ أخذنا أحد دفاتر الملاحظات في الحاضرين
وألقينا قفلًا على
MCS بينما تابعت ماري حديثها. في وقت لاحق قمنا بتنفيذها ، جربت ، تحولت الفكرة إلى نجاح ، وقمنا بنشر مقال. ثم بدا لي أن هذا الموضوع مجرد إلهاء ممتع ، وبعد ذلك خططت للعودة إلى أنظمة التشغيل. ولكن بعد ذلك نشأت مشكلة أخرى في نفس الاتجاه ، وفي نهاية المطاف ، أصبحت المزامنة وتعدد مؤشرات الترابط وهياكل البيانات تخصصي الرئيسي. كما ترون ، كل هذا حدث بالصدفة.
فيتالي : لقد كنت معتادًا منذ فترة طويلة على حظر MCS ، لكن حتى الآن لم أكن أعرف أن هذا هو عملك ، ولم أفهم أنه اختصار لاسمك الأخير.
كيف تعيش في عالم دائم التغير؟
أليكسي : لدي سؤال حول موضوع ذي صلة. قبل 30 أو 40 عامًا ، كانت هناك حرية أكبر في التخصصات المختلفة. إذا كنت ترغب في بدء مهنة في أنظمة متعددة مؤشرات الترابط أو الموزعة - من فضلك ، كنت تريد أن تفعل أنظمة التشغيل - لا مشكلة. في كل مجال كان هناك الكثير من الأسئلة المفتوحة وعدد قليل من الخبراء. ظهرت الآن تخصصات ضيقة: ببساطة لا يوجد خبراء في أنظمة التشغيل بشكل عام ، وهناك خبراء في الأنظمة الفردية. نفس الشيء مع أنظمة تعدد العمليات الموزعة. لكن المشكلة تكمن في أن حياتنا ليست بلا نهاية ، يمكن للجميع أن يكرسوا للبحث فقط لعدة عقود. كيف تنجو في هذا العالم الجديد؟
مايكل : نحن لسنا متميزين في هذا الصدد ، حدث كل ذلك مرة واحدة في مناطق أخرى. كنت محظوظًا لأنني بدأت العمل في علوم الكمبيوتر عندما كان هذا المجال في سن "المراهقة". لقد تم بالفعل وضع بعض الأسس ، لكن كل شيء كان لا يزال غير ناضج للغاية. مثل هذه الفرصة تظهر بشكل غير منتظم. الهندسة الكهربائية موجودة منذ وقت طويل ، والفيزياء - حتى أطول ، والرياضيات - تقريبًا من بداية الوقت. ولكن هذا لا يعني أنه في الرياضيات لا يوجد شخص آخر يقوم باكتشافات مثيرة للاهتمام. لا تزال هناك العديد من المشكلات المفتوحة ، ولكن في نفس الوقت ، هناك حاجة إلى تعلم المزيد. لقد لاحظت بشكل صحيح أن هناك الآن تخصصات أكثر بكثير من ذي قبل ، ولكن هذا يعني فقط أننا في نفس الموقف مثل معظم مجالات النشاط البشري الأخرى.
أليكسي : أنا مهتم بالجانب العملي للقضية. لديّ تعليم رياضيات ، وخلال دراستي غالبًا ما حضرت مؤتمرات وعملت على مواضيع علمية مختلفة. لقد وجدت أن أحداً من الجمهور لم يفهم تقاريري ، وبنفس الطريقة ، كانت تقارير الأشخاص الآخرين مفهومة فقط لأنفسهم. في الموضوعات عالية المستوى ، هذا ليس كذلك ، ولكن بمجرد أن تبدأ الخوض في شيء ما ، يتوقف الجمهور عن مواكبة لك. كيف تتعامل مع هذا؟
مايكل : لم يكن ناجحًا دائمًا. لقد قمت مؤخرًا بإعداد تقرير تعمقت فيه في التفاصيل الفنية. مع تقدم التقرير ، أصبح من الواضح أن معظم الجمهور لم يفهموني ، لذلك كان علي التكيف مع الموقف أثناء التنقل. لم يعد بالإمكان تغيير الشرائح ، لذا لم تنجح بشكل جيد - لذلك ، عمومًا ، أحاول عدم استخدام الشرائح. بشكل عام ، نصيحتي هي - فكر في جمهورك. تحتاج إلى معرفة من تتصل به ، ومستوى المعرفة لديهم وما يحتاجون إلى سماعه من أجل تقييم عملك.
فيتالي : هل يمكن أن تعطي تلميحًا حول موضوع هذه المحاضرة؟
مايكل : بصراحة ، أفضل عدم الحديث عن هذا الموضوع من أجل ترك مجهول الهوية للأشخاص المعنيين. خلاصة القول هي أننا غالبًا ما نغوص عميقًا في التفاصيل الدقيقة للمشكلة التي نعمل عليها ، لذلك يصعب علينا أن نوضح في بداية التقرير لماذا هذه المشكلة مهمة ومهمة وكيف أنها مرتبطة بالأسئلة التي يعرفها الطلاب بالفعل. وفقًا لملاحظاتي ، فإن هذه المهارة هي الأكثر صعوبة للطلاب. وكانت تلك هي نقطة الضعف في تقريري الأخير. يجب أن يجد التقرير المنظم جيدًا من البداية اتصالًا بالجمهور ، ويوضح له بالضبط ما المشكلة وكيفية ارتباطها بالمواضيع المعروفة بالفعل له. كيف التقنية هذا الجزء التمهيدي سوف يعتمد على الجمهور. إذا كانت مرقطة بالكامل ، يمكن أن يكون التقرير متعدد المراحل. يجب أن يكون الدخول متاحًا للجميع ، وفي النهاية ، قد لا يكون الجزء مناسبًا لك في الوقت المناسب ، ولكن الأشخاص المطلعين نسبيًا على منطقتك سيكونون قادرين على فهم كل شيء.
هل الطلاب يحصلون على الغباء؟ الاتجاهات العالمية ، التدويل.
أليكسي : لقد كنت تشاهد الطلاب لعدة عقود. هل يصبح الطلاب أغبياء أو أكثر ذكاءً من عقد إلى عقد أو من سنة إلى أخرى؟ في روسيا ، يشكو الأساتذة باستمرار من أن الطلاب يزدادون غباءً كل عام ، وليس من الواضح ما الذي يتعين عليهم فعله حيال ذلك.
مايكل : يمكنك سماع الكثير من السلبية منا نحن كبار السن. اللاوعي ، لدينا ميل إلى توقع أن يتقن الطلاب جميع سنوات الخبرة الثلاثين التي لدينا بالفعل. إذا كان لدي فهم أعمق مما كان عليه في عام 1985 ، فلماذا لا يكون لدى الطلاب ذلك؟ ربما لأنهم يبلغون من العمر 20 عامًا ، كيف تحب ذلك؟ أعتقد أن أهم التغييرات في العقود الأخيرة تتعلق بالتركيبة السكانية: لدينا الآن عدد أكبر من الطلاب الدوليين ، باستثناء الكنديين. كان هناك الكثير من الكنديين ، حيث أننا قريبون جدًا من الحدود مع كندا ، ويمكن للطلاب العودة إلى ديارهم من هناك في عطلة نهاية الأسبوع. لكن يوجد الآن في كندا العديد من الجامعات الجيدة ، ويفضل الكنديون الدراسة في منازلهم ، في الولايات المتحدة الأمريكية بدأوا في السفر أقل كثيرًا.
أليكسي : هل تعتقد أن هذا اتجاه محلي أم عالمي؟
مايكل : لا أتذكر من بالضبط ، لكن قال أحدهم إن العالم مسطح. أصبحت منطقتنا أكثر دولية.
كانت مؤتمرات ACM تُعقد بشكل حصري داخل الولايات المتحدة الأمريكية ، ثم قرروا عقدها كل 4 سنوات في بلدان أخرى ، والآن يتم عقدها في جميع أنحاء العالم. إلى حد كبير ، أثرت هذه التغييرات على
IEEE ، لأنها كانت دائمًا منظمة دولية أكثر من ACM. ومديرو البرامج (رؤساء البرامج) هم من الصين والهند وروسيا وألمانيا والعديد من البلدان الأخرى ، لأنه في كل مكان تحدث أشياء كثيرة الآن.
أليكسي : ولكن ربما هناك بعض الجوانب السلبية لهذا التدويل؟
مايكل : أود أن أقول إن كل الجوانب السلبية لا تتعلق بالتكنولوجيا ، وإنما تتعلق بالسياسة. ما إن كانت المشكلة الرئيسية هي حقيقة أن الولايات المتحدة سرقت الأشخاص الأكثر ذكاءً والموهوبين من مختلف دول العالم. والمشكلة الرئيسية الآن هي الألعاب السياسية بين مختلف البلدان حول التأشيرات والهجرة.
أليكسي : وهذا هو ، الحواجز وما شابه ذلك. انا ارى
فلاديمير : أنا شخصياً أتساءل عن المنهج الذي تتبعه عند تدريس مادة جديدة للطلاب. بعد كل شيء ، هناك خيارات مختلفة: يمكنك أولاً محاولة إلهامهم لتجربة شيء جديد ، ويمكنك إيلاء المزيد من الاهتمام لتفاصيل كيفية عمل تقنية معينة. ماذا تفضل؟
العمل الفعال مع الطلاب
أليكسي : وكيف تجد التوازن لعنة بين الأول والثاني؟
مايكل : المشكلة هي أن الفصول لا تسير دائمًا كما أريد. عادةً ، أقدم للطلاب مواد للقراءة مقدماً حتى يتمكنوا من الخوض فيها ، وفهم أكبر قدر ممكن ، وصياغة أسئلة في تلك الأماكن التي لم يتمكنوا من فهمها. ثم في الفصل الدراسي ، يمكنك التركيز على أصعب اللحظات واستكشافها جميعًا معًا. هذه هي الطريقة التي أحب أن أقود بها الطبقات أكثر من غيرها. لكن مع الأخذ في الاعتبار العبء الذي يقع على الطلاب حاليًا ، لم ينجح دائمًا في التأكد من استعدادهم مقدمًا. نتيجةً لذلك ، يجب أن نخصص وقتًا أكبر بكثير لإعادة سرد المواد بشكل عام أكثر مما نود. على الرغم من ذلك ، أحاول الحفاظ على تفاعلاتنا مع الطلاب. وإلا ، فمن الأسهل تسجيل مقطع فيديو مرة واحدة ، حيث يمكن للطلاب مشاهدته في المنزل. معنى الأنشطة الحية هو في التفاعل البشري. في الفصل الدراسي ، أفضل عدم استخدام الشرائح ، ولكنني استخدم الطباشير والسبورة ، إلا في بعض الحالات عندما يكون الرسم التخطيطي معقدًا للغاية بحيث لا يمكن رسمه على السبورة. بفضل هذا ، لست بحاجة إلى الالتزام بخطة درس صارمة. نظرًا لعدم وجود ترتيب محدد بدقة أعطي فيه المادة ، فإن هذا يتيح لي إمكانية التكيف مع الجمهور اعتمادًا على الأسئلة التي أتلقاها. بشكل عام ، أحاول أن أجعل الفصول تفاعلية قدر الإمكان ، بحيث تعتمد المادة التي أقدمها على الأسئلة التي طرحتها.
فلاديمير : هذا رائع جدا. في تجربتي ، من الصعب للغاية الحصول على أسئلة من الجمهور. حتى إذا كنت تسأل مقدمًا لطرح أي أسئلة ، بغض النظر عن الغباء أو الذكاء ، فهي لا تزال صامتة. كيف تتعامل مع هذا؟
مايكل : سوف تضحك ، لكن إذا وقفت بصمت لفترة طويلة ، فسيكون الجميع عاجلاً أم آجلاً غير مريح ، وسيقوم شخص ما بطرح سؤال. أو يمكنك طرح سؤال فني بسيط مع الإجابة "نعم" أو "لا" لتحديد ما إذا كان الناس قد فهموا ما تمت مناقشته للتو. على سبيل المثال ، هل هناك سباق بيانات في المثال أعلاه؟ من يفكر نعم؟ من لا يفكر؟ من لا يفهم أي شيء على الإطلاق ، لأنه في المجموع ارتفع نصف الأيدي فقط؟
فيتالي : وإذا أجبت بشكل غير صحيح ، فأنت تطير خارج الصف :-)
مايكل : إذا لم تجب على أي شيء ، فيجب عليك طرح سؤال. يجب أن أفهم بالضبط ما يحتاج الطالب إلى معرفته للإجابة على السؤال الذي طرحته للتو. انهم بحاجة لمساعدتي. أنا مستعد للتكيف معهم حتى يفهموا المشكلة. لكن إذا لم أكن أعرف ما الذي يجري في رؤوسهم ، فلا يمكنني القيام بذلك. وإذا كنت لا تمنح الطلاب السلام لفترة طويلة ، فإنهم في النهاية يسألون في بعض الأحيان الأسئلة الصحيحة ، أي تلك التي تساعدني على رؤية ما يحدث في رؤساء الطلاب.
أليكسي : هل تثير هذه الأسئلة أحيانًا أفكارًا لم تفكر بها من قبل؟ هل هم غير متوقعين؟ هل يسمحون لنا أن ننظر إلى بعض المشاكل في ضوء جديد؟
مايكل : هناك أسئلة تفتح طريقة جديدة لتقديم المواد. غالبًا ما توجد أسئلة تؤدي إلى مشاكل مثيرة للاهتمام لم أخطط للحديث عنها. غالبًا ما يخبرني الطلاب أنني أميل إلى الابتعاد عن موضوع الدرس عندما يحدث هذا. ووفقًا لهم ، غالبًا ما يكون هذا هو الجزء الأكثر إثارة للاهتمام من النشاط. في حالات نادرة جدًا ، حرفيًا عدة مرات ، طرح الطلاب أسئلة ظهرت في اتجاه جديد في الدراسة ونمت لتصبح مقالة. يحدث هذا في كثير من الأحيان في محادثات مع الطلاب ، وليس خلال الفصول الدراسية ، ولكن في بعض الأحيان أثناء الفصول الدراسية.
أليكسي : هذا هو ، طرح عليك الطلاب أسئلة ، على أساسها يمكنك نشر مقال لاحقًا؟
مايكل : نعم.
فيتالي : كم مرة تجري مثل هذه المحادثات مع الطلاب؟ , ?
: — . - 5 6 , - . , — . , . , . , . , , . , , , .
: ? , — .
: , — , . . , , . , , 9 17 . , , — .
.
: - , ? - Computer Science.
: , — .
: , 10, 20, 30 ? , , .
: , . 1980-, , (
Doug Baldwin ). , , . , . ( :
«Programming Language Pragmatics» ) 200 . , , . , : , , , . , , . , Pascal, . Swift, Go, Rust, , . , , , . Python, Ruby Perl, , , , .
: . ? , — , . ?
: , 100% . , — . Rust, Google, Mozilla . , . , .
: . (cache coherence). , ? . ?
: , . (
William Bolosky ) (
Leonidas Kontothanassis ) 1990- . , : , , , . . , NUMA, page placement . , , — . , (hardware transactional memory). , , . , , . , .
: : , ? ?
: , , . , . , , . , , - . , - - , . . - , , . — .
: . , . , , Intel. , ?
: , , , - . , : , , . , , , . , , , , . , , . , . , . - 15 . , ,
«How to evaluate systems research» - , . ,
, , , . , .
: , , . , , TDP, . ? , ?
: , . , . , , . , Linux. , AWS. .
: ? ?
: . - 1980- , . ,
(National Science Foundation ) (Coordinated Experimental Research, CER). Computer Science, . 1984 128- BBN Butterfly, . . 128 , , . , 128 . MCS.
: , ?
: — . : -, , , . - 10 , - . Intel. , , , . , (
Steven Swanson )
. , . , . , , , .
. MCS, MS, CLH, JSR 166, .
: , .
MCS - (MS) , Java. ( :
).
CLH , . .
: , 10 .
: Java?
: . , ? ?
: , MS Java 5. (Mark Moyers) Sun Microsystems . , , , . (Doug Lea). , - 25 Sun
JSR 166 , java.util.concurrent. , MS, . , , . , . , « », . , . Java.
: , .size() , O(1)?
: , .
: .size() Java, , , . , .
: (dual data structures) (Bill Scherer) — ,
Hydra . , Java Executor Framework. , (fair and unfair queues). , . executors .
: ? , . , , , , , - . ?
: , « » — , . , . , K42 IBM MCS , acquire release. , , . , , , . , .
, . , MS , , CAS. CAS . Intel , - 30 , . , MS, . , O(n) , O(1). , . - , . , . , , , , . . (Dave Dice) Oracle. , , , . NUMA-aware .
: , . - , , , . .
: , . , , . , . , 10, 20, 25 . , . , , , , . , . , . , , 10 . — 20. , . . , . (Joe Izraelevitz) DISC, , . , , . , . , , .
: - , ? , ? , , , .
: , , . -, , Google Scholar , , . , . , , , — . . , , , . , , .
: , ?
: , , . , , . , , . ,
(M. Herlihy, JEB Moss) . 1990- , , , . , JSR 166. , . 2000-, . . . . , , .
: . , , . , . , , , . ( : — ,
Disruptor Aeron .
Joker 2015,
YouTube .
,
). , , . . ?
: : , .
: , .
: — . , . (Butler Lampson), « ». . , , 10 — . ISA , , . . , . — GPU, , , , FPGA. , ? , .
: , . , . : — , , — , , , .
: — - .
: C++.
: - (Hans Boehm). , , . , . , , , 30
. ( :
).
: : ?
: . , , API. API, . , . . , , , , .
: , , , , , ? , , . , . ?
: . , , , - . , , . MNS . (Adam Morrison) (Yehuda Afek)
LCRQ . , , fetch-and-increment. . , fetch-and-increment . (Eric Freudenthal) Ultracomputer c (Allan Gottlieb) 1980-, . fetch-and-increment .
. ?
: , ?
: , , , .
: , ?
: — Intel IBM. , - load store . happens-before, . , , , . , , .
— . , . . , , 100 , , . , , . , - .
: , . ?
: . — . , — . , . , , , . , . , , . . , CAS , , . , , .
, Optane DIMM, .
: , — : . ? , - ?
: , , . , Intel
Optane DIMM , - 3 10 , RAM. . , RAM. , 10 , DRAM — . . , - . , - , — . , , . . , , . , , , «» .
, — . . - , , 5 , TCP-IP , . . , , . , . USENIX ATC . , , , I/O, . , .
: — , — . , .
: .
: , ?
: , - . , , . , , - . , .
: . , RAM CPU. - RAM .
: . , . .
: , . .
: . .
: .
. Dual data structures. Hydra.
: , . , , . , ? , , ?
: , . , , - . - , , , . , .
: Hydra . , , . ?
: . , . , , Java. , , . , , , , . , . , — , , . . , 10 , - , . - , . «» , , , -. - , . . , , , . , .
: ? , ?
: , , -, , , -, , , . , , . . , . , .
: : , ?
:
, . , , , . , . , . , - MS.
: ?
: , . Hydra. , Java, LCRQ, .
: , Hydra — , - ?
: , , Hydra , Java, , .
: , .
: , .
: , : .
: , ? ?
: , , . , . , . ,
SPTDC; - Java, -, Java. Java, .
: , Hydra - , , - . , . , , . , . !
: .
: -.
: , . - ?
: , . - , , , .
: , . , !
Hydra 2019, 11-12 2019 -. «Dual data structures» . .