小编F2H*_*ell的帖子

是否可以改进以下 Fortran 代码?

这里\xe2\x80\x99是使用该特定算法的已完成程序之一。

\n\n
        program Lotto\n\n        implicit none\n\n        INTEGER::MAXTHREADS\n        INTEGER::I,N,Q,RAN,RAN4(4),N129(9),LOTTO5(5)\n        REAL::R,TI,TIMELY,SEC\n\n        CALL RANDOM_SEED()\n!____________________________________________________________________________\n!____________________________________________________________________________\n\n        N=0\n        RAN4=0\n        DO\n            CALL RANDOM_NUMBER(R)\n            RAN=1+INT(9*R)\n            IF(COUNT(RAN==RAN4(1:4))/=0)CYCLE\n            N=N+1\n            RAN4(N)=RAN\n            IF(N==4)EXIT\n        ENDDO\n\n        N129=[1,2,3,4,5,6,7,8,9]\n        N129(RAN4(1:4))=0\n\n        N=0\n        DO I=1,9\n            IF(N129(I)==0)CYCLE\n            N=N+1\n            LOTTO5(N)=I\n        ENDDO    \n        PRINT*,LOTTO5\n\n        end program Lotto\n
Run Code Online (Sandbox Code Playgroud)\n\n

针对我原来的帖子,High Performance Mark 提出了两个重要的观察结果:

\n\n
    \n
  1. 如果不了解代码片段的使用上下文,就无法对它进行任何描述。和

  2. \n
  3. 无论如何,可能不值得花时间去打扰那些小事。(对措辞表示歉意。)

  4. \n
\n\n

上面的简短程序 \xe2\x80\x9cLotto\xe2\x80\x9d 仅作为一个小演示,用于在 \xe2\x80\x93 上下文中显示 \xe2\x80\x93 如何使用过滤算法。当然,作为仅几行代码的集合,它可能无法改进。然而,我本来希望并非如此。当每天处理 1500 到 2000 行新的 Fortran 代码,并且类似的代码片段在同一程序中出现 10 或 12 次时,如果您可以改进(优化)其中一个,则可以优化它们,至少可以减少一些执行时间,这间接说明了 HPM\xe2\x80\x99 的第二个观察结果。作为一名 Fortran 程序员,我只有一个目标,那就是用尽可能短的执行时间产生期望的结果。这是\xe2\x80\x99 的好说法。更现实的说法是: \xe2\x80\x9c 花费最少的钱,产生想要的结果。 \xe2\x80\x9d 由于 \xe2\x80\x9coptimization\xe2\x80\x9d 是众多标签之一, Stack Overflow 使用时,我希望能够进行一些涉及优化的讨论,但显然情况并非如此。我猜还有其他论坛。一些年轻的用户可能对代码优化的工作原理感兴趣,但他们中的许多人似乎非常专注于无法正确执行某些代码集合。

\n\n …

optimization fortran

1
推荐指数
1
解决办法
274
查看次数

标签 统计

fortran ×1

optimization ×1