Netlib 故事的开端追溯到上世纪七十年代,当时美国国家标准局(NBS)对数学软件的需要日益增长。数学软件对科学研究和工程实践具有重要作用,但由于缺乏标准化的数学软件,导致科研人员和工程师们无法共享和传播各自领域中的算法和程序。为了解决这个问题,NBS 联合贝尔实验室和浙江大学等机构共同发起了一个名为“共享数学软件”(SMS)的计划,旨在建立一个集成化的数学软件库,并将其共享给整个国际科学、工程、数学社区。
1982 年,NBS 组织了一次 SMS 的研讨会,邀请科学计算领域的专家和软件开发者参加,共同讨论数学软件库的建设与推广。会议上,约翰.“麦克唐纳(John McAthy)介绍了一个新兴的FTP(文件传输协议)网络,该网络允许各地的计算机之间进行快速的文件传输和共享。经过商议,与会专家决定基于这个新技术建立一个名为“Numerical Algorithm Group Algorithm Collection(NAG)的国际性数学软件库。
Netlib 最早的形态正是基于 NAG 的创意,和其他类似共享软件计划一样,这个库旨在存储各领域的数值算法以及复杂的软件实现,目的是为科学家、工程师、研究生提供共享和交流的平台。间隔不久之后,NBS 的工作人员在加州大学伯克利分校的计算机科学系建立了一个邮箱,专门用于 Netlib 的管理、维护以及新算法的提交。作为一个人人都可以被使用的资源,Netlib 在数值算法、统计学习和优化等各领域中被广泛使用,而且在高能物理和地球物理学等应用领域也得到了普遍的应用。
Netlib 的代码实现质量和规模成为了数值计算和科学计算领域中的标准,这些代码教育和培养了许多计算机科学家和应用数学家,其中许多人成为了开源软件 movement 的倡导者。在开源软件运动中,Netlib 中诸如 BLAS(基本线性代数子程序)和 LAPACK(线性代数包)等程序库成为了早期开源运动的代表。数值应用软件是科学计算的基础,而 Netlib 中的程序库对这一基础的形成发挥了重要作用。
尽管在计算机性能和编程技术上已经出现了显著的变化,但 Netlib 仍然是一个非常有价值的资源,为科学家和工程师提供了重要的支持,并且依然被用于许多大型的科学计算项目。在过去的几十年中,Netlib 已经成为了不可或缺的数值软件库和开放资源,尤其是在美国、欧洲和亚洲等各个领域中得到广泛的应用。
作为一个实用性非常强的数学软件库,Netlib 为我们提供了许多珍贵的算法和代码,这些算法不仅适用性范围广泛,而且跨学科性质强,在物理、地理、社会学、环境科学以及工程学等领域都发挥了重要作用。其体系结构与封装方式也有助于我们构建高效性的数学计算程序,并且可以基于不同的编程语言实现算法,在许多几何问题、机器学习和图像处理任务中都有所应用。
随着计算机技术和软件工程方法的不断发展,Netlib 也在不断发展。最初的 Netlib 采用了简单的邮件列表和 FTP服务器来进行代码交流和共享,后来更加注重协作和版本控制,采用了类似于 Github 和 Git 的方式进行协同开发。此外,还有一些相关的推广努力,比如建立网站、分享代码、提供技术支持等,以帮助人们更好地掌握和使用 Netlib。
在过去几十年中,Netlib 已经发展成为了一个世界上最著名和最受欢迎的科学计算软件库之一,其历史和发展也显示了科学计算领域对共享和开放资源的需求。对 Netlib 的贡献不仅仅是它提供的数值算法和实现,还包括了它成为了一个全球共享科学计算资源的典范,并给未来的开源和共享资源的发展带来了启示和帮助。