首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

厉害了!Ziglang首次落地高性能计算场景

Zig 与 OpenMP 的集成不仅在扩展性上可与 Fortran 和 C 的 NPB 参考实现相媲美,同时在某些场景下,Zig 的性能相较Fortran来说,提升幅度多大1.25倍。...III-A 词法分析与语法解析 如第 II 节所述,OpenMP 依赖于 pragma 来指定程序如何并行,但 Zig 本身并不支持 pragma语法。...因此,必须将其作为一种新类型的语句添加到Zig中。我们决定将 pragma 实现为特殊的注释,这与 Fortran 中的支持方式类似。...这些函数声明与标准 OpenMP 函数采用相同方式转换,但被放置在.omp.internal命名空间中。与标准 API 不同,这些函数在导出时没有移除前缀,它们非直接供程序员使用。...Zig 程序 Zig 编译器没有提供 Fortran 等效的 translate-c,因此所有 Fortran 代码都需要手动移植。

48410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    在Win下安装Visual Studio和Parallel Studio XE

    我们的目标是Fortran且带MKL库,这里面并没有。需要接着安装parallel studio。 安装Intel Parallel Studio XE 2020 1....该网站有时较卡,若页面上Accept键没有浮起、无法点击,可尝试去掉一个勾再勾上。填写对应的信息(使用edu邮箱),下拉,打勾,点击Submit。几分钟内官方会将序列号发送至你的edu邮箱。...安装 下载下来的文件是 parallel_studio_xe_2020_cluster_edition_setup.exe 双击之,会要求指定解压缩目录,可能需要几分钟来解压缩,时间长短取决于电脑配置。...另一种办法是使用新式的Fortran 95接口,参数少,使用更方便。...当然,存在其他更为复杂的设置/调用方式,笔者没时间一一尝试,只列出了尝试过的、最简单的一种。

    8.9K31

    无缝衔接Fortran大气模式和Keras深度学习模型!

    简短版本 当前许多大型科学计算项目都是用Fortran编写的,比如气象领域的数值预报模式。而近些年来深度学习在地球科学领域的得到越来越多的关注。...可以通过如下两种方式实现上述目的,一种是使用Fortran重写当前所有深度学习代码;另一种是在现代语言深度学习模型和Fortran之间构建桥梁接口。...自定义层 为了在Fortran中应用神经网络,FKB扩展了神经Fortran库。同时引入了可扩展的层模块,为了实现一个层,可以简单的扩展层的类型并且指定前向和后向函数。...在Fortran中训练 首先要区分两种训练方式:离线和在线。这两种方式的差别主要是:如何利用模型的预测结果。...超参数化是通过将数千个潮湿对流的有限域显式子模型嵌入到传统的大尺度大气行星模型中,来解决气候模型中次网格云物理学长达数十年的问题的一种方法。详细的描述就不多说了,感兴趣的去看论文吧。 ?

    3K30

    动态可视化告诉你,从1965年开始哪些编程语言曾最受欢迎?

    我坚信这世界上没有最好的编程语言,只有最合适的。Python语言简单易上手,短短几行不到可以实现其它语言几十行才可以实现的功能,说明Python在应用层面更加人性化,易用性高。...Python基于C语言才发明出来的,是一种动态的解释型语言,但它无法取代C。C是底层语言,在嵌入式里Python无法和C相提并论。...下面东哥带大家认识一下在历史中排过最受欢迎的那些牛逼编程语言。 FORTRAN 从1965到1980年,Fortran一直保持着霸主的地位。...1977年,Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。发表后可以说是一发不可收拾,火热程度一直持续,直到2002年Java上位。...1996年1月,Sun公司发布了Java的第一个开发工具包(JDK 1.0),这是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具。9月,约8.3万个网页应用了Java技术来制作。

    64930

    改变未来IT世界的十种编程语言:Go语言

    虽然这种语言还不成熟,各种语言特征和规格还在变化,但程序员如今已经用它来开发工作了。 F#语言 这种语言已经在计算机科学研究和学术界里流行很久了。...Fantom工程不仅包括一个可以输出JVM和.NET CLI字节码的编译器,还包括一套从Java和.Net中提取的API,从而可以创建一个额外的可移植代码层。...这种语言被规划为要快,简洁,可移植,易读。它的语法独特、与众不同,但功能丰富。使用C语言风格的表达式和操作符,但有自己的关键字、数据类型和块结构。它支持内存管理,线程,管道。可移植是它的核心理念。...尽管Zimbu是一种编译型语言,但Zimbu编译器输出的是ANSI C代码,这样可以让本地的C编译器来把它编译成本地平台的二进制代码。...代码和数据被分割成小的单元,分布到一个或多个“空间”,使得将一个单线程程序升级成运行在多核处理器上的多线程程序变得简单。 haXe语言 haXe(发音是“hex”)胜过任何一种可移植的编程语言。

    1.9K50

    计算机图形学—从0开始构建一个OpenGL软光栅

    它用于二维、三维图像,是一个功能强大,调用方便的底层图形库。它与硬件无关,可以在不同的平台如 Windows、Linux、Mac、Android、IOS 之间进行移植。...显示列表和着色器:OpenGL 提供了两种主要的方式来指定如何渲染图形。一种是通过使用显示列表来指定一系列的顶点和参数。...另一种是通过使用着色器,这是一种在 GPU 上运行的小程序,可以控制图形的最终颜色和位置。...三、点、直线和多边形我们知道数学(具体的说,是几何学)中有点、直线和多边形的概念,但这些概念在计算机中会有所不同。数学上的点,只有位置,没有大小。...(Extension)的支持,当一个显卡公司提出一个新特性或者渲染上的大优化,通常会以扩展的方式在驱动中实现。

    13210

    NVIDIA发布全新OpenACC工具套件

    OpenACC的一大主要特性是高性能移植,而PGI OpenACC编译器则把这一优势推向全新高度。该编译器首次能够在x86多核CPU和GPU上加速OpenACC代码。...当系统中有GPU时,该编译器将会针对GPU做代码并行化的优化,最终与多核CPU相比可带来5~10倍的性能提升。...在该案例中,他提到了一款名为LS-DALTON的应用,该应用主要用于复杂的大规模分子模拟。 他想要在基于GPU打造的Titan超级计算机上,利用LS-DALTON来模拟更大的科学难题。...然而像许多研究人员一样,Eriksen的Fortran编程技能是自学的,他并没有在计算机科学这方面接受过正规教育。...而且他不需要更改应用中的任何算法即可在一台全球顶级的超级计算机上运行这一应用。 如果你有一款C语言或Fortran应用并且想要使其在配备GPU的计算机系统上运行,那么现在正是时候。

    1.3K50

    诞生于穿孔纸带时期的语言,ALGOL 60今年60岁了

    第一代语言中有一种名为 Autocode,是为方程等编码问题而设计的,然后用该语言写的代码会被转译为机器码。不过与如今的语言不同,该语言并没有很多花哨的功能。...这门语言受到了供应商的欢迎,因为程序员可以更轻松地在不同代际的硬件设备上移植系统和代码,而不必在每次计算机更新换代时都重写各种程序。」 ?...在 ALGOL 开始应用之后,Fortran 的发展仍在继续。Herbert 说:「Fortran 世界的人看到 ALGOL 中有他们喜欢的思路,就直接将其移植了过去。」...几十年后,Fortran 依然处于科学计算的中心,而 ALGOL 则更倾向于是一种学术语言,用于教授计算机科学的思想。」...Tony Hoare 负责在 Elliott 803 计算机上开发 ALGOL 60 的实现版本,这个实例至今仍可在英国国家计算博物馆的机器上运行,不过在该硬件上编译和运行程序的方式与如今程序员所熟悉的开发环境有所不同

    58020

    大数据存储_hdf5 简介

    概述 HDF5 (Hierarchical Data Format) 是由美国伊利诺伊大学厄巴纳-香槟分校,是一种跨平台传输的文件格式,存储图像和数据 hdf5的优势 通用数据模型,可以通过无限多种数据类型表示非常复杂...、异构的数据对象和各种各样的元数据 高速原始数据采集 可移植和可扩展,文件大小没有限制 自描述的,不需要外部信息应用程序来解释文件的结构和内容 拥有用于管理、操作、查看和分析数据的开源工具和应用程序软件的生态系统...在各种计算平台(从笔记本电脑到大规模并行系统)和编程语言(包括C、c++、Fortran 90和Java)上运行的软件库 hdf5结构 hdf5结构分为两个部分,一个是group,一个是dataset...如上图所示,根目录下有两个group,viz group中有许多图和表,其中,表和simout group是共享的。simout group中有一个三维的矩阵和2个2维的矩阵。...hdf5是一个非常专业的数据存储格式,同时支持的数据类型广泛,有更高级的使用,但是考虑到时间和需求,我应该不会在这方面深入过多,后续应该会更新r语言的hdf5文件处理,python备用。

    6.5K10

    C语言的现在与未来

    可移植性  C是一种可移植语言。这意味着,在一个系统上编写的C程序经过很少改动或不经修改就可以其他系统上运行。如果修改是必要的,则通常只须改变伴随主程序的一个头文件中的几项内容即可。...多数语言原本都想具有可移植性,但任何曾将IBM PC BASIC 程序转换为 Apple BASIC 程序(它们还是近亲)的人,或者试图在 UNIX 系统上运行一个 IBM 大型机 FORTRAN 程序的人都知道...,移植至少是在制造麻烦。...C语言的未来 20世纪80年代初,C 在 UNIX系统的小型机世界中已经是主导语言了,从那时开始,它已经扩展到个人计算机(微型机)和大型机(庞然大物), 许多软件开发商都首选 C 语言来开发其子处理程序...同样,C 已开始进入长期以来一直属于 FORTRAN 的科学编程领域。  最后,由于它是一种适合用来开发操作系统的语言,C 在windows以及 Linux的开发中也扮演着重要的角色。

    1.1K10

    K8S 暴露服务的新方法 Gateway API 详解,它有什么优势?

    便携:这不是一种改进,而是应该保持不变的东西。正如 Ingress 是一个具有多种实现的通用规范一样,Gateway API 被设计为一种可移植的规范,由许多实现支持。...可扩展:Gateway API 允许在 API 的各个层链接自定义资源。这使得在 API 结构中的适当位置进行细粒度定制成为可能。...,并且定义是完全可移植的!...跨命名空间路由 作为理解的一部分,在 Kubernetes 集群中有不同的角色操作不同的组件,因此需要支持跨命名空间引用,因为这些不同的组织单元通常在不同的命名空间中运行,同时仍然使用通用的基础设施组件...在我看来,社区在收集案例研究并以负责任的方式统一它们方面做得非常出色。

    2.7K32

    通过写“猜数字”游戏学习 Fortran | Linux 中国

    我一直认为 Fortran 与 BASIC 有点相似,所以每当我需要编写一个简短程序,来分析实验室数据或执行其他一些数值分析时,我都会很快想到 Fortran。...Fortran 编程基础 虽然 Fortran 这些年来一直在更新,但我最熟悉的还是 Fortran 77,这是我多年前学习的实现版本。...相反,你必须使用标签(行号)和 GOTO 语句来构建自己的循环。这就是 READ 语句有一个行号的原因:你可以在循环末尾使用 GOTO 跳转到此标签。...穿孔卡片没有 (大于)符号,因此 Fortran 采用了另一种语法来进行值比较。要测试一个值是否小于另一个值,请使用 .LT.(小于)。要测试一个值是否大于另一个值,请使用 .GT....在其他语言中尝试 在学习一门新的编程语言时,这个“猜数字”游戏是一个很好的入门程序,因为它以非常简单的方式练习了几个常见的编程概念。

    1.9K30

    《Spring Boot极简教程》附录3 编程简史附录3 编程简史名词纪要参考资料

    [8] 1890,霍列瑞斯(Herman Hollerith)在观察列车长对乘客票根在特定位置打洞的方式后,意识到他可以把信息编码记载到打孔卡上,随后根据这项发现使用打孔卡来编码并纪录1890年的人口统计数据...- BASIC 1964 - PL/I 1967 - BCPL (C的先驱) 其中有三个现代编程语言于1950年代被设计出来,这三者所派生的语言直到今日仍旧广泛地被采用: Fortran ,1954...另一个创新则是关于语言的描述方式: 一种名为巴科斯-诺尔范式 (BNF)的数学化精确符号被用于描述语言的语法。之后的编程语言几乎全部都采用类似BNF的方式来描述程序语法中上下文无关的部分。...Kurtz)认为像FORTRAN那样的语言都是为专业人员设计,没有办法普及。于是,他们在简化FORTRAN的基础上由共同研制出来的。1964年BASIC语言正式发布。...他对Simula的类体系感受颇深,对ALGOL的结构也很有研究,深知运行效率的意义。既要编程简单、正确可靠,又要运行高效、可移植。

    50420

    Fortran 流程控制(二):forall和do concurrent孰优孰劣

    在《Fortran 流程控制(一):where》一文中,我们介绍了一种面向数组的条件判断结构,类似于面向标量的if结构。...FORALL 结构 forall结构可以看作是隐式循环的一种拓展,可以实现通过条件判断是否给数组赋值的功能。...安全的处理方法是避免使用这些语句。 • 允许在结构体中调用其他程序,只要这些程序是纯的,这意味着该程序没有副作用。...• 程序员也要保证在迭代过程中编译器没有数据依赖(比如,通过共享变量,在一次迭代过程中分配数据内存,在另一个迭代过程中释放数据内存,或者在不同的迭代过程中从外部渠道读取和写入数据)。..." "type_spec" 选项 关于do concurrent结构,一个有趣的注意事项是:标准还允许指定结构中索引的类型(类型总是integer,但kind参数可以自定义)。

    90010

    大规模开源线性代数求解器(Eigen,LAPACK,Ceres)+JSim数值解算器+Plot Digitizer

    0,0) = 3; m(1,0) = 2.5; m(0,1) = -1; m(1,1) = m(1,0) + m(0,1); std::cout << m << std::endl; } 没有什么依赖的库.../lapack/ LAPACK 是用 Fortran 90 编写的,提供用于求解联立线性方程组、线性方程组的最小二乘解、特征值问题和奇异值问题的例程。...LAPACK 通过重新组织算法以在最内层循环中使用块矩阵运算(例如矩阵乘法)来解决此问题。...这些块操作可以针对每个架构进行优化,以考虑内存层次结构,从而提供一种可移植的方式来在不同的现代机器上实现高效率。...在报告和参考文献中,数据通常以功能 XY 型散点图或折线图的形式呈现。为了使用这些数据,必须以某种方式将其数字化。

    2K10

    通过Gateway API不断演变的Kubernetes网络

    这一讨论是基于以下几个关键假设: 作为路由匹配、流量管理和服务暴露基础的 API 标准已经商品化,作为自定义 API 对其实现者和用户几乎没有提供什么价值 可以通过共同的核心 API 资源来表示 L4/...L7 路由和流量管理 以一种不牺牲核心 API 的用户体验的方式,为更复杂的功能提供可扩展性是可能的 引入 Gateway API 这就引出了允许 Gateway API 在 Ingress 基础上改进的设计原则...面向角色的设计——API 资源模型反映了在路由和 Kubernetes 服务网络中常见的职责分离。 可扩展性——资源允许在 API 的不同层上附加任意的配置。这使得在最合适的地方可以进行细粒度定制。...灵活的一致性——Gateway API 定义了不同的一致性级别——核心(强制支持)、扩展(如果支持则可移植)和自定义(没有可移植性保证),统称为灵活的一致性[1]。...这促进了一个高度可移植的核心 API(如 Ingress),它仍然为网关控制器实现者提供灵活性。 Gateway API 是什么样子的?

    1K31

    xmake v2.3.6 发布, 新增fortran编译支持

    这个版本重点对其他语言的支持做了一些改进,比如新增了fortran的编译支持,zig语言的实验性支持,另外对golang/dlang增加了第三方依赖包支持以及交叉编译支持。...新特性介绍 Fortran语言编译支持 这个版本开始,我们已经完全支持使用gfortran编译器来编译fortran项目,我们可以通过下面的命令,快速创建一个基于fortran的空工程: $ xmake..."test") set_kind("binary") add_files("src/*.f90") 更多代码例子可以到这里查看:Fortran Examples Zig语言实验性支持...我们可以通过下面的配置方式,尝试性体验下,至少linux/macOS下console和static library程序还是可以跑的。...Xcode插件生成支持 目前,我们还没有时间去自己实现xcode工程的生成,但不代表不支持,因为xmake支持生成cmakelists.txt文件,而cmake是支持xcode工程文件生成的,在官方还没有实现之前

    95030
    领券