
莫里斯·赫里奇 ( Maurice Herlichi )曾两次获得Dijkstra奖 。 第一个用于等待自由同步 (布朗大学),第二个用于更新事务:事务性存储器:无锁数据结构的架构支持 (弗吉尼亚理工大学)。 迪克斯特拉奖授予的是其重要性和影响力已经至少十年显着的作品,而且显然,莫里斯(Maurice)是该领域最著名的专家之一。 他目前在布朗大学(Brown University)担任教授,在整个段落中都有许多成就。 他目前在经典分布式计算的背景下从事区块链研究。
早些时候,莫里斯(Maurice)前往俄罗斯参加SPTCC( 视频 ),并在圣彼得堡与Java开发人员社区JUG.ru进行了精彩的会面( 视频 )。
这本哈伯拉斯特邮报是对莫里斯·赫利希(Maurice Herlihy)的一次精彩采访。 它讨论了以下主题:
- 学术领域与行业的互动;
- 区块链研究的基础;
- 突破性想法从何而来。 受欢迎程度的影响;
- 由Barbara Liskov领导的博士;
- 世界正在等待多核。
- 通往新世界-新问题。 NVM,NUMA和黑客体系结构;
- 针对处理器的编译器,RISC与CISC,共享内存与消息传递;
- 编写易碎的多线程代码的艺术;
- 如何教学生编写复杂的多线程代码;
- 新版的《多处理器编程艺术》;
- 事务性内存的发明方式;
- 为什么值得在分布式计算领域进行研究;
- 是否停止了算法的开发以及如何生存?
- 在布朗大学工作;
- 大学与公司内部研究之间的区别;
- 九头蛇和SPTDC。
采访人:
Vitaly Aksyonov目前是IST Austria的后勤工作人员,还是ITMO大学计算机技术系的一名员工。 从事竞争性数据结构的理论和实践研究。 在加入IST之前,他在Peter Kuznetsov教授的指导下获得了巴黎Didro大学和ITMO大学的博士学位。
阿列克谢·费多罗夫 ( Alexey Fedorov)是俄罗斯公司JUG Ru Group的制作人,该公司为开发人员组织会议。 Alexey参加了50多个会议的准备工作,履历表中有Oracle开发工程师(JCK,Java Platform Group)的职位,以及devrell在Odnoklassniki的职位。
Vladimir Sitnikov是Netcracker的工程师。 十年来,他一直致力于NetCracker OS的性能和可伸缩性,该软件是电信运营商用来自动化网络和网络设备管理流程的软件。 他对Java和Oracle数据库性能问题感兴趣。 作者在官方PostgreSQL JDBC驱动程序中进行了十几项性能改进。
学术领域与行业的互动
Alexei:Moris,您在学术环境中工作了很长时间,第一个问题是学术领域和工业领域之间的相互作用。 您能否告诉我们它们之间的相互作用最近如何变化? 20-30年前发生了什么,现在发生了什么?
莫里斯(Maurice):我一直试图与商业公司紧密合作,因为它们有有趣的任务。 通常,他们对发布结果或对国际社会对其问题的详细解释都不感兴趣。 他们只对解决这些问题感兴趣。 我在这些公司工作了一段时间。 我在Digital Equipment Corporation(以前是一家大型计算机公司)的研究实验室中全职工作了五年。 我一周在Sun,微软,甲骨文工作一天,并在Facebook上工作了一段时间。 现在我要休假(休假,美国大学的一位教授被允许休假一年大约六次)并在Algorand工作,这是波士顿的一家加密货币公司。 与公司紧密合作一直是我的荣幸,因为这是您学习新颖有趣的事情的方式。 您可以成为第一人或第二人,就您选择的主题发表文章,而不是逐步改善其他人已经在解决的问题的解决方案。
阿列克谢:您能告诉我们更多有关此情况的信息吗?
莫里斯:当然。 您知道,当我在Digital Equipment Corporation和Elliot Moss一起工作时,我们发明了事务存储。 每个人都开始对信息技术感兴趣的时候,这是一个非常富有成果的时期。 并发性,尽管还没有多核系统。 在Sun和Oracle时代,我在并行数据结构上做了很多工作。 在Facebook上,我参与了他们无法谈论的区块链项目,但我希望它将很快公开。 明年,我将在Algorand的一个研究小组工作,研究智能合约。
Alexei:在过去的几年中,区块链已成为一个非常受欢迎的话题。 这对您的研究有帮助吗? 也许这将有助于获得赠款,或使人们获得该行业中运营公司的资源?
莫里斯(Maurice):我已经从以太坊基金会获得了一笔小小的资助。 区块链的普及对于激发学生在这一领域的工作非常有用。 他们对此非常感兴趣,并乐于参与,但有时他们不明白,听起来很诱人的研究实际上包含了艰苦的工作。 尽管如此,我很高兴在区块链周围使用所有这些神秘知识,这有助于吸引学生。
但这还不是全部。 我是多家区块链初创公司的顾问委员会成员。 他们中的某些人可能会成功,有些人可能不会成功,但是看到他们的想法,研究它们并向人们提供建议总是很有趣的。 最令人兴奋的是,当您警告人们不要做某事时。 起初很多时候似乎是个好主意,但确实如此吗?
区块链研究基金会
生命力:有人认为区块链及其算法具有未来。 还有人说这只是另一个泡沫。 您可以对此发表您的看法吗?
莫里斯(Maurice):区块链世界中发生的许多事情都无法正常运行,只是骗局,很多被高估了。 尽管如此,我认为这些研究有坚实的科学基础。 区块链世界充满意识形态差异的事实表明了兴奋和奉献的程度。 另一方面,它对科学研究不是特别有利。 现在,如果您发表有关特定算法缺点的文章,那么所产生的反应并不总是完全科学的。 人们常常抛出自己的情绪。 我认为在这一领域引起轰动对于某些人来说似乎很有吸引力,但最后,还有一些尚待解决的实际科学和工程问题。 有很多计算机科学。
Vitaliy:也就是说,您正在尝试为区块链研究奠定基础,对吗?
莫里斯(Maurice):我正在努力为扎实,科学和数学上健全的学科奠定基础。 部分原因是有时您必须与他人的某些过于苛刻的立场相矛盾而忽略它们。 有时人们会问为什么我在一个只有恐怖分子和毒贩感兴趣的地区工作。 这种反应与盲目地重复您的话的追随者的行为毫无意义。 我认为真相介于两者之间。 区块链仍将对社会和全球经济产生深远影响。 但是,由于现代技术的出现,这种情况可能不会发生。 现代技术将会发展,未来被称为区块链的技术将变得非常重要。 也许看起来甚至不像现代的区块链,这是一个悬而未决的问题。
如果人们发明新技术,他们将继续称其为区块链。 我的意思是,就像今天的Fortran与1960年代的Fortran语言无关,但每个人都将其称为Fortran。 UNIX也是如此。 所谓的“区块链”将继续革命。 但是我怀疑这个新的区块链会变得与今天每个人都喜欢使用的相似。
突破性想法从何而来。 人气影响
Alexei:从科学的角度来看,区块链的普及是否带来了新的结果? 更多的互动,更多的学生,该地区的更多公司。 这种受欢迎程度有什么结果吗?
莫里斯(Maurice):当有人递给我一家刚刚筹集了很多钱的公司的正式传单时,我对此产生了兴趣。 它写了拜占庭将军的任务,我比他们更熟悉。 传单上写的显然在技术上是不正确的。 编写所有这些内容的人并没有真正理解问题背后的模型……但是该公司筹集了很多钱。 随后,该公司悄悄地用更正确的选项替换了该传单-我不会说这家公司的名字。 他们仍然存在,并且做得很好。 这个案例使我确信,首先,区块链只是一种分布式计算形式。 其次,进入门槛(至少在四年前)很低。 在该领域工作的人非常有活力和聪明,但没有阅读科学论文。 他们试图重塑著名的事物,但做错了。 今天,这部戏已经消失了。
阿列克谢:这很有趣,因为几年前我们有不同的趋势。 这有点类似于前端开发,那时浏览器界面开发人员重新发明了当时已经在后端流行的全部技术:构建系统,持续集成等等。
莫里斯:我同意。 但这并不奇怪,因为真正的突破性想法总是来自现有社区之外。 公认的研究人员,特别是学术环境中的权威人士,不可能真正突破。 很容易为下一次会议写一份报告,说明您如何略微改善以前的工作成果。 参加会议,与朋友聚会,谈论同样的事情。 人们突破性的想法几乎总是来自外部。 他们不了解规则,不了解语言,但是……如果您在现有社区中,我建议您注意新事物,而不是与大局无关的事物。 从某种意义上说,可以尝试将外部的,更流畅的开发与我们已经了解的方法结合起来。 第一步,尝试创建一个科学基础,然后对其进行更改,以便将其应用于新的突破性想法。 我认为区块链非常适合一个新的突破性想法。
阿列克谢:您为什么认为这会发生? 因为“外部”的人在社区中没有固有的特定障碍吗?
莫里斯(Maurice):有某种模式。 如果您阅读一般印象派绘画和艺术的历史,那么著名画家一度拒绝印象派。 他们说这是一种孩子气。 一代人之后,这种先前被拒绝的艺术形式成为标准。 我在我的领域中看到的是:区块链发明家对权力不感兴趣,在整理出版物和引文索引时,他们只是想做点好事。 因此,他们坐下来开始这样做。 他们缺乏一定的技术深度,但是可以解决。 提出新的创意要比纠正和加强不够成熟的创意要困难得多。 感谢这些发明者,我现在有事要做!
阿列克谢:这类似于创业公司和遗留项目之间的区别。 我们继承了思想,障碍,特殊要求等的许多限制。
Maurice:一个很好的类比是分布式计算。 将区块链想像成一家新兴的分布式计算公司-一家大型公司。 分布式计算正在与区块链购买和合并的过程中。
由Barbara Liskov领导的博士
Vitaliy:我们还有很多问题! 我们研究了您的传记,发现了有关您博士学位的一个奇怪的事实。 是的,它已经很久了,但是这个话题似乎很重要。 您自己在Barbara Liskov的指导下获得了博士学位! 芭芭拉在编程语言开发人员社区中非常有名,并且通常是非常有名的人。 您的研究属于编程语言领域,这是合乎逻辑的。 您如何切换到并行计算的? 您为什么决定更改主题?
莫里斯(Maurice):当时,芭芭拉(Barbara)和她的团队只是研究分布式计算,这是一个非常新的想法。 也有人说分布式计算是胡说八道;计算机之间的通信毫无意义。 分布式计算解决的问题之一是容错,这使它们与集中式计算区别开来。 经过广泛研究,我们决定在用于分布式计算的编程语言中,您需要具有原子事务之类的东西,因为您永远无法确定远程调用是否成功。 一旦进行事务处理,就会出现并发控制问题。 然后,有很多工作来获得高度并行的事务数据结构。 然后,当我毕业时,我去了卡耐基梅隆大学 ,开始寻找工作的话题。 在我看来,计算已从单个计算机转移到计算机网络。 多处理器将自然地成为进步的延续-“多核”一词尚不存在。 我想:对于多核系统,原子交易相当于什么? 绝对不是普通交易,因为它们太大而又沉重。 因此,我想到了线性化的想法,这就是我提出所有免等待同步的方式。 这是试图回答什么是具有共享内存的多处理器系统的原子事务类似物的问题。 乍一看,这项工作可能看起来非常不同,但实际上,它是同一主题的延续。
期待多核的世界
Vitaliy:您提到当时很少有多核计算机,对吗?
莫里斯:他们只是不在那里。 几个所谓的对称多处理器基本上都连接到同一条总线。 这并不是很好,因为每次新公司创建类似的产品时,英特尔都会发布优于多处理器的单处理器。
阿列克谢:这是否意味着在过去,它更多是理论研究?
莫里斯:这不是理论上的,而是投机性研究。 所有这些都不是要处理许多定理;相反,我们提出了关于当时不存在的体系结构的假设。 这就是需要研究的地方! 没有公司会做这样的事情;这一切都是遥遥无期的事情。 实际上,直到2004年才出现真正的多核处理器。 由于处理器过热,您可以使处理器更小,但不能更快地完成。 因此,已经过渡到多核体系结构。 然后,这意味着我们过去开发的所有概念突然有了一个应用程序。
阿列克谢:为什么您认为多核处理器仅在2000年代出现? 那为什么这么晚呢?
莫里斯(Maurice):这是由于硬件限制。 英特尔,AMD和其他公司非常擅长提高处理器速度。 在某个时候,处理器变得足够小,它们将无法再增加时钟频率,因为处理器将开始燃烧。 您可以使它们更小,但不能更快。 它们的功能是什么-可以将八个,十六个或三十二个处理器而不是非常小的处理器放入相同体积的机箱中,以前只能放置一个。 现在,它们之间具有多线程和快速通信,因为它们共享缓存。 但是您不能使它们工作更快-有一个非常具体的速度限制。 他们继续改善一点,但没有太大改善。 物理定律阻碍了改进。
通往新世界-新问题。 NUMA,NVM和黑客体系结构
阿列克谢:听起来很合理。 随着新的多核处理器的出现,新的问题出现了。 您和您的同事期望这些问题吗? 也许您事先研究了它们? 在理论研究中,通常很难预测此类情况。 当问题确实发生时,它们如何满足您和您的同事的期望? 还是它们是全新的,您和您的同事不得不花很多时间解决出现的问题?
Vitaliy:我要补充一个Alexei问题:您在学习理论时是否正确预测了处理器的体系结构?
莫里斯:并非全部都是100%。 但是我认为我和我的同事在预测共享内存的多核方面做得很好。 我认为我们正确地预测了开发无锁的并行数据结构时遇到的困难。 这样的数据结构对许多应用程序都很重要,尽管不是对每个人都重要,但是通常您确实需要一个无阻塞的数据结构。 当我们发明它们的时候,许多人声称这是胡说八道,而且带锁的一切都可以正常工作。 我们很好地预测,将为许多编程问题和数据结构问题提供现成的解决方案。 还有更复杂的问题,例如NUMA-内存访问不均。 实际上,由于它们太具体了,甚至在发明多核处理器之前就没有考虑过它们。 研究界致力于通常可以预测的问题。 与特定体系结构相关的一些硬件问题必须等待解决-实际上,这些体系结构的出现。 例如,没有人真正致力于GPU特定的数据结构,因为当时不存在GPU。 尽管在SIMD上做了很多工作,但是只要合适的硬件出现,这些算法就可以立即使用。 但是,不可能预见一切。
Alexei:如果我理解正确,NUMA是在成本,性能和其他一些方面之间的折衷。 知道NUMA为什么这么晚吗?
莫里斯(Maurice):我认为NUMA存在是由于用于制造内存的硬件问题:组件越远,访问它们的速度就越慢。 另一方面,此抽象的第二个值是内存的一致性。 因此,并行计算的特征之一是所有抽象都被稍微破坏了。 如果访问在理想情况下是统一的,则所有内存将是等距的,但这在经济上甚至物理上都是不可能的。 因此,发生这种冲突。 如果您在编写程序时就好像内存是统一的,那么很可能是正确的。 从某种意义上说,她不会给出错误的答案。 但是她的星星从天空的表现不会被抓住。 同样,如果在不了解高速缓存层次结构的情况下编写自旋锁 ,则锁本身将是正确的,但您可能会忘记性能。 - , , , , : , , , . , , .
: ? , ? , . , - .
: . , – , . , , 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 . , , , , . . , , . , : , , – . . , - : , , , , , – . , , , . , – . , .
: . , . , , . - , ?
莫里斯(Maurice):我经常停下来问经典问题。 任何陈述都是正确的,或者它们将如何解决所讨论的问题。 这是一个关键动作,尤其是在课程开始时,人们甚至不好意思说一点。 您问学生一个问题,不再赘述。 沉默开始,每个人都有些紧张,紧张加剧,然后突然有人无法忍受,崩溃并说出答案。 因此,您可以扭转局势:保持沉默比回答变得更加困难和不便! 这是一个标准的教学技巧。 世界上的每个老师都需要知道如何做。
Alexei:现在,我们在这次采访中起了个好名字:“回答比保持沉默更容易。”
Vitaliy:我再问你一个。 您正在研究拓扑证据。 您如何参与其中,因为分布式计算和拓扑是两件事!
莫里斯(Maurice):有一个隐藏的关系。 当我还是一个学生学习数学时,我学习的是纯数学。 在培训结束之前,我对计算机没有真正的兴趣,而我发现自己迫切需要寻找工作。 作为一名学生,我学习了代数拓扑。 多年后,在执行名为“ k-Set协议问题”的任务时,我使用图形对问题进行建模,并且似乎找到了解决方案。 您只需要坐下来计算即可。 尝试在此列上找到合适的答案。 但是我的算法不起作用:事实证明,他将永远在圈子里奔跑。 不幸的是,所有这些都不能用图论的形式语言来解释。图论是计算机科学领域的所有专家都知道的一种语言。 然后我想起了很多年前,即使是在拓扑类中,我们也使用了“简单复数”的概念,即将图推广到更高维度。 然后我问自己:如果我们以单纯复形形式重新表达问题,将会发生什么? 这已经成为关键点。 当使用更强大的形式主义时,问题突然变得容易得多。 人们在使用图形的过程中苦苦挣扎了很长时间,但是却无能为力。 是的,现在他们不能了-正确的答案不是算法,而是解决问题的不可能的证明。 即,根本不存在这样的算法。 但是, 每种不可能的证明都是基于简单复杂性,或者是基于人们假装不考虑简单复杂性的事物。 从您给某事起一个新名字的事实来看,它并没有失去其本质。
维塔利:那么,你只是幸运吗?
莫里斯(Maurice):除了运气,还准备就绪 。 这意味着您不应忘记先前研究过的“无用”的东西。 您学到的东西越多,遇到新问题时就可以汲取更多的想法。 如此直观的模式匹配非常重要,因为...让我们做,这就是链条:最初,我发现图形根本不起作用或根本不起作用,它使我想起了八年前和我的学生时代的一些事件,当时我们研究了所有这些简单复形。 反过来,这使我能够找到旧的拓扑教科书并将其装回到脑海中。 但是,如果不是因为那些老知识,我将永远无法解决原始问题。
新版的《多处理器编程艺术》
阿列克谢:您对您的书说了几句话。 这可能不是您写出世界上最著名的多线程书籍《多处理器编程的艺术 》中最糟糕的秘密。 她已经11岁了,从那以后只发行了修订版 。 会有第二版吗?
莫里斯:问得好! 大约三个月后不久。 还有两位作者,我们增加了很多材料,改进了fork / join-parallelism一节,在MapReduce上编写了一部分,增加了许多新内容,并排除了不必要的内容-在撰写第一版时非常有趣,但是今天已经不复存在了。 结果是一本非常认真的修订书。
阿列克谢:一切都已经完成了,只剩下发布了吗?
莫里斯(Maurice):还需要完成几章。 我们的发布商(我认为他已经讨厌我们)仍在努力传达我们应该更快地工作。 我们远远落后于时间表。 从理论上讲,我们可以在几年前完成这本书。
阿列克谢:圣诞节前有没有机会获得这本书的新版本?
莫里斯:那是我们的目标! 但是我已经多次预测胜利,以致没有人相信我。 您可能也不应该在这个问题上信任我。
Alexei:无论如何,这真是个好消息。 我真的很喜欢这本书的第一版。 您可以说我是粉丝。
莫里斯(Maurice):我希望新版值得您的热忱,谢谢!
事务性内存是如何发明的?
重要:下一个问题是关于事务存储。 据我了解,您是该领域的先驱,您是在没人想到这种事情的时候发明的。 您为什么决定搬到这个地区? 为什么交易对您来说很重要? 您是否曾经想到过它们将以铁的形式体现出来?
莫里斯(Maurice):自研究生毕业以来,我就对交易有所了解。
Vitaliy:是的,但这是其他交易!
莫里斯(Maurice):我与埃利奥特·莫斯(Elliott Moss)合作进行了无阻塞垃圾收集。 我们的问题是我们想要原子地更改内存中的几个单词,然后这些算法将变得非常简单,并且至少其中一些将变得更加高效。 使用由并行体系结构提供的负载 交换 /存储条件 比较交换 ,您可以执行某些操作,但是它非常低效且难看,因为您必须处理间接级别。 我想更改存储字,并且需要切换,因为我只能更改一个指针,因此需要将它们指向某种类似于目录的结构。 我们讨论了如果我们可以更换熨斗以便同时进行录音,那将是多么美妙。 Elliot似乎已经注意到了这一点:如果您查看缓存一致性协议,它们已经提供了大多数必要的功能。 在乐观交易中,缓存一致性协议将注意到同步冲突,并且缓存将变为无效 。 如果您推测性地在缓存上启动事务并使用一致性协议机制来检测冲突,将会发生什么情况? 投机性硬件架构易于设计。 因此,我们写了关于事务内存的第一本出版物 。 同时,我工作的公司Digital Equipment Corporation正在创建一个称为Alpha的新64位处理器。 因此,我去了Alpha开发团队,就我们出色的交易记忆作了介绍,他们问:如果将所有这些直接添加到处理器中,我们公司将获得多少额外收入? 我对此绝对没有任何答案,因为我是技术专家,不是市场营销专家。 我真的无话可说。 他们对我一无所知印象不深。
Vitaliy:数十亿! 只需说“十亿”!
莫里斯:是的,那是我应该说的。 现在,在初创企业和所有这些时代,我知道如何编写业务计划。 关于潜在利润的多少,您能撒些谎。 但是在那些日子里,这似乎很幼稚,所以我只是说:“我不知道。” 如果您查看有关事务性内存的发布历史,您会发现一年后有多个链接指向事务内存,然后大约十年来,没有人引用此文章。 行情出现在2004年左右,当时出现了真正的多核。 当人们发现编写并行代码可以赚钱时,新的研究开始了。 Ravi Rajwar 写了一篇文章 ,以某种方式将主流引入了事务存储的概念。 (编者注:本文有第二个版本,于2010年发布,可以PDF格式免费获得)。 突然,人们意识到可以完全使用所有这些功能,如何加速传统的加速阻塞算法。 过去似乎是一个有趣的学术问题的一个很好的例子。 是的,如果那时候您问我我是否认为所有这些将来都很重要,我会说:当然,但是确切的时间-尚不清楚。 也许在50年后? 实际上,这只是十年。 当您做某事时,这是非常好的,并且仅仅十年后,人们就注意到了。
为什么值得在分布式计算领域进行研究
Vitaliy:如果我们谈论新的研究,您会为读者提供什么建议-分布式计算还是多核,为什么?
莫里斯(Maurice):如今,获得多核处理器很容易,但是要建立一个真正的分布式系统则比较困难。 我开始研究它们是因为我想做一些不同于博士论文的事情。 这是我一直给初学者的建议:不要写论文的续篇-尝试朝新的方向发展。 但是,多线程很容易。 我可以试验自己在笔记本电脑上运行的叉子,而无需起床。 但是,如果我突然想创建一个真正的分布式系统,我将不得不做很多工作,吸引学生,等等。 我是一个懒惰的人,更喜欢从事多核工作。 与在分布式系统上进行的实验相比,在多核系统上进行的实验也更容易,因为即使在愚蠢的分布式系统中,也需要控制太多因素。
Vitaliy:您现在正在探索区块链吗? 首先要注意哪些文章?
莫里斯(Maurice):最近出现了一篇非常好的文章 ,我和我的学生维克拉姆· 萨拉夫 (Vikram Saraf)在一起写的,专门写给三周前在巴黎举行的Tokenomcs会议上发言。 本文是关于实际的分布式系统的,我们建议在其中创建以太坊多线程。 现在,智能合约(在区块链上运行的代码)将按顺序执行。 我们之前写了一篇文章,讨论了如何使用投机性交易来加快这一过程。 我们从事务性软件存储器中汲取了很多想法,并说,如果将这些想法作为Etherium虚拟机的一部分,那么一切都会更快地运行。 但是为此,根据数据,合同中必须没有冲突。 然后我们建议在现实生活中确实不存在此类冲突。 但是我们没有机会找到答案。 然后我们想到我们手上已有近十年的真实合同历史,因此我们卸载了Etherium区块链并问自己:如果并行执行这些历史记录会发生什么? 我们发现速度显着提高。 在以太坊的早期,速度有了很大的提高,但是今天却变得更加复杂了,因为合同减少了,并且需要序列化的数据发生冲突的可能性更高。 但是,所有这些都是具有真实历史数据的实验性工作。 区块链的优点是它可以永远记住一切,因此您可以回到过去,研究如果我们使用其他算法来运行代码会发生什么。 过去的人们如何喜欢我们的新想法。 这样的研究更加容易和有趣,因为有一种东西可以监视一切并记录一切。 与算法开发相比,这已经与社会学更相似。
算法的开发是否已停止以及如何继续进行
Vitaliy:最后一个理论问题的发生时间! 您是否认为竞争数据结构的变化每年都在缩小? 您是否认为我们对数据结构的理解已达到平稳状态,还是会有任何重大改进? 也许有些棘手的想法可以完全改变一切?
莫里斯(Maurice):我们可能已经达到传统架构的数据结构的平稳期。 但是,用于新架构的数据结构仍然是一个非常有希望的领域。 如果要为硬件加速器创建数据结构,则GPU的数据结构与CPU的数据结构非常不同。 在为区块链开发数据结构时,需要对数据片段进行哈希处理,然后将其放入类似Merkle树的模型中,以防止伪造。 在这一领域,最近的活动激增;许多人做得很好。 但是我认为新架构和新应用程序会导致新的数据结构会发生。 旧应用程序和传统体系结构-也许那里没有太多的研究空间。 但是,如果您走开人迹罕至的地方,直视边缘,您会发现主流不重视的疯狂事情-这是所有激动人心的事情实际发生的地方。
Vitaliy:因此,要成为一名非常著名的研究人员,我必须发明自己的建筑:-)
莫里斯(Maurice):您可以“窃取”别人的新架构-似乎容易得多!
布朗大学的工作
Vitaliy:您能告诉我们更多关于布朗大学的信息吗? 在信息技术方面对他知之甚少。 例如,少于麻省理工学院。
莫里斯(Maurice):布朗大学是美国最古老的大学之一。 我认为只有哈佛大学大一点。 布朗是所谓的常春藤联盟的一部分,该联盟由八所最古老的大学组成。 哈佛,布朗,康奈尔,耶鲁,哥伦比亚,达特茅斯,宾夕法尼亚州,普林斯顿。 它是一所古老,小型且略带贵族的大学。 重点是人道主义教育。 他没有尝试像MIT一样,MIT非常专业和技术。 布朗是学习俄罗斯文学或古典希腊语言,当然还有计算机科学的好地方。 他专注于综合教育。 我们的大多数学生都去过Facebook,Apple,Google-因此,我认为我们的学生在行业中安顿下来没有任何问题。 我去布朗工作,因为在那之前我曾在波士顿的数字设备公司工作。 这家公司发明了许多有趣的东西,但否认了个人计算机的重要性。 一家命运艰苦的公司,其创始人曾经是年轻的革命者,他们一无所知,一无所获,因此,他们从革命者变成反动派已有大约十二年的历史。 他们喜欢开玩笑说个人计算机在车库里有一个地方-当然是在废弃的车库里。 显然,它们被更灵活的公司所摧毁。 当公司出现问题时,我打电话给布朗的朋友,布朗离波士顿大约一个小时。 当时我不想离开波士顿,因为其他大学的空缺职位不多。 那时是计算机科学领域中空缺数量不多的时期。 但是布朗有空缺,我不必搬家,也不必搬家人,我真的很喜欢住在波士顿! 所以我决定去布朗。 我喜欢 学生们很棒,所以我什至从未尝试去其他地方。 在一个创意假期中,我在微软工作了一年,然后在海法的Technion工作了一年,现在我将在Algorand。 我到处都有很多同事,因此我们培训班的实际位置并不是那么重要。 但是最重要的是学生,他们是这里最好的。 我从未尝试去其他地方,因为我在这里也很高兴。
然而,尽管布朗在美国声名,起,但在国外却出奇的陌生。 如您所见,现在我正在尽力纠正这种状况。
大学与公司内部研究之间的区别
Vitaliy:好,下一个问题是关于数字设备的。 你是那里的研究员。 在大公司的研发部门工作与在大学工作有什么区别? 优点和缺点是什么?
莫里斯(Maurice):20年来,我设法在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» . .