Znn3bq.jpeg
²é¿´: 2801  |  »Ø¸´: 9
±¾Ìû²úÉú 1 ¸ö ³ÌÐòÇ¿Ìû £¬µã»÷ÕâÀï½øÐв鿴

coolrainbow

ľ³æ (ÖøÃûдÊÖ)

δÀ´¹ú¼Ò¶³Á¹

[½»Á÷] ¡¾×ªÌû¡¿intel Fortran±àÒëÆ÷µÄÒ»¸ö¡°Î£ÏÕ¡±ÓÅ»¯ ÒÑÓÐ9È˲ÎÓë

Ô´µØÖ·£ºhttp://hi.baidu.com/coolrainbow/ ... d6c40c5aaf535e.html

½ñÌìÎÞÒâÖз¢ÏÖÁËintel±àÒëÆ÷ÓÅ»¯µÄÒ»¸öÎÊÌâ¡£ÎÒÓÐÒ»¸ö³ÌÐò£¬´óÖÂÊÇÕâÑù

program main
    integer, parameter :: n = 1000
    real(kind = 8) value(n)
    integer i
   
    call computation(value)

    do i = 1, n
         write (*,*) value(n)
    enddo
end

ÆäÖÐcomputationÊÇÒ»¸ö¼ÆËãÁ¿¼«´óµÄsubroutine¡£ÀûÓÃintel±àÒë±àÒ룬·Ö±ðÁîn = 1000ºÍn = 5000£¬²»ÓÅ»¯ºÍÓÅ»¯Ö´ÐеÄʱ¼ä

n           1000              5000
O0        12min             60min
O2          7min             36min

ºóÀ´£¬ÎÒÎÞÒâÖн«Êä³öº¯ÊýµÄ´úÂëÈ¡ÏûÁË£¬Ò²¼´£º

program main
    integer, parameter :: n = 1000
    real(kind = 8) value(n)
    integer i
   
    call computation(value)
end

ÔÙ´ÎÔËÐУ¬¾ªÏÖ£¡

n           1000              5000
O0        11min30s          59min
O2         0.003s            0.003s

¿´µ½ÕâÖÖ½á¹û£¬ÎÒÄ¿µÉ¿Ú´ô£¬¿ÉÊǵ±ÎÒ·¢ÏÖn=1000ºÍ5000ÊÇÖ´ÐÐʱ¼äÏàͬ£¬ÎҾͲ²âcomputationÕâ¸ö×Ó¹ý³Ì¸ù±¾¾ÍûÓÐÖ´ÐС£ÄÇôΪʲôûִÐÐÄØ£¿ÎҲ²⣺intel±àÒëÆ÷ÔÚO2¹ý³ÌÖУ¬·¢ÏÖºóÐø´úÂëûÓÐÓõ½valueÕâ¸öÊý×飬ҲûÓÐÇ£³¶µ½computationº¯ÊýÄÚ²¿µÄÈκÎÄÚÈÝ£¬Òò´Ë¸É´à½«ÆäÓÅ»¯µôÁË¡£

Õâ¸ö²Â²â¶ÔÂ𣿾ö¶¨¿´Ò»Ï¡£ÔÚn=1000ʱºò£¬ÎÒ½«Á½¶Î´úÂë±àÒë³É»ã±àÓïÑÔ£º
ifort -O0 -o pO0.s -S   foo.f90
ifort -O2 -o pO2.s -S   foo.f90

Ê×Ïȹ۲ìpO0.s£¬·¢ÏÖ£º

# -- Begin MAIN__
.........
   call      foo_mp_computation_                #369.10
........
# -- End MAIN__

¹ûÈ»£¬mainÖе÷ÓÃÁËcomputationº¯Êý¡£ÔÙ¿´pO2.s£¬ÎÒÃÇ·¢ÏÖ£º

# -- Begin MAIN__
........
# -- End MAIN__

ȷȷʵʵûÓз¢ÏÖcomputationº¯Êýµ÷ÓõĻã±à´úÂ룬¹þ¹þ£¬¿´À´ÎÒµÄÍÆ²âÊǶԵġ£

ÏÂÃæÕâ¶Î±È½ÏСµÄ´úÂ룬´ó¼Ò¿ÉÒÔ×Ô¼ºÓñàÒëÆ÷±àÒëһϣ¬ÎÒÓÃifort±àÒëÁËһϣ¬ºÍÉÏÃæÊÇÒ»ÑùµÄ£¬Í¨¹ý»ã±àÓïÑÔ¿ÉÒÔ·¢ÏÖ£¬¿ªÆôO2ʱ£¬»ã±à´úÂëµÄMAINÖÐûÓгöÏÖµ÷ÓÃperformº¯ÊýµÄÄÚÈÝ¡£µ±È»£¬Èç¹ûÎÒ˵µÄ²»¶Ô£¬Ï£Íû´ó¼ÒÖ¸½Ì£¬ºÇºÇ¡£

subroutine perform(value, n)
   integer n
   real(kind = 8) value(n)

   integer i

   do i = 1, n
       value(i) = 2.0*i
   enddo
return
end subroutine


program main

   integer, parameter :: n = 10
   real(kind = 8) value(n)

   call perform(value,n)

end

ÊÂʵÉÏ£¬Õâ¸öÀý×Ó±íÃ÷£¬±àÒëÆ÷µÄÓÅ»¯Ñ¡ÏîȷʵÓÐÒ»¶¨µÄΣÏÕÐÔ£¬¾¡¹ÜÔÚÕâ¸öÀý×ÓÖУ¬²¢Ã»ÓÐʲôÎÊÌ⣬µ«ÊÇÔÚͶ²ú¼¶±ðµÄÈí¼þÖÐÆô¶¯ÓÅ»¯Ñ¡ÏîʱµÄÈ·ÒªÉ÷ÖØ£¬Ò»°ã²»ÒªÆôÓÃO3ÕâÖÖ¼¤½øµÄÓÅ»¯£¬¼´Ê¹ÆôÓÃÒ²Ò»¶¨ÒªÊÔÑéÈ·¶¨´úÂëÎÞÎóºó²ÅÐÐ
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

¼¼Êõ²©¿Í£ºhttp://hi.baidu.com/coolrainbow/blog
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

hakekill

ľ³æ (СÓÐÃûÆø)

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
Õâ¸öȷʵÊǵÚÒ»´ÎÌý˵£¬²»ÖªµÀgfortranÊDz»ÊÇÕâÑù
2Â¥2010-09-12 19:06:22
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ifmc1234

ľ³æ (ÖøÃûдÊÖ)

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
ÒýÓûØÌû:
Originally posted by coolrainbow at 2010-09-12 18:21:45:
Ô´µØÖ·£ºhttp://hi.baidu.com/coolrainbow/ ... d6c40c5aaf535e.html

½ñÌìÎÞÒâÖз¢ÏÖÁËintel±àÒëÆ÷ÓÅ»¯µÄÒ»¸öÎÊÌâ¡£ÎÒÓÐÒ»¸ö³ÌÐò£¬´óÖÂÊÇÕâÑù

program main
    integer, param ...

Â¥Ö÷Õý½â¡£ºÜ¶àÈí¼þ¶¼ËµÁËÕâ¸öÎÊÌâ¡£
ËùÒÔÓÐЩÈí¼þ(ÐèÒª×Ô¼º±àÒëµÄ)¸æËßʹÓÃÕßÒª°Ñ±àÒë½á¹ûºÍËûÃǸøµÄÀý×Ó½øÐбȽϡ£
3Â¥2010-09-12 19:21:14
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

coolrainbow

ľ³æ (ÖøÃûдÊÖ)

δÀ´¹ú¼Ò¶³Á¹

ÒýÓûØÌû:
Originally posted by hakekill at 2010-09-12 19:06:22:
Õâ¸öȷʵÊǵÚÒ»´ÎÌý˵£¬²»ÖªµÀgfortranÊDz»ÊÇÕâÑù

gfortranËÆºõûÓÐÕâÑù£¬±ÈÈç¸Õ²ÅÄǶδúÂë

f95 -O0
CODE:
.LCFI4:
         movl    $options.5.935, %esi
         movl    $7, %edi
         call    _gfortran_set_options
         leaq    -80(%rbp), %rdi
         movl    $.LC0, %esi
         movl    $0, %eax
         call    perform_
         leave
         ret
.LFE3:

f95 -O2
CODE:
.LCFI0:
        movl    $options.5.929, %esi
        movl    $7, %edi
        call    _gfortran_set_options
        movq    %rsp, %rdi
        movl    $.LC0, %esi
        xorl    %eax, %eax
        call    perform_
        addq    $88, %rsp
        ret
.LFE3:

¼¼Êõ²©¿Í£ºhttp://hi.baidu.com/coolrainbow/blog
4Â¥2010-09-12 21:00:35
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

maomao1210

½ð³æ (ÕýʽдÊÖ)

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
ÒýÓûØÌû:
Originally posted by coolrainbow at 2010-09-12 18:21:45:
Ô´µØÖ·£ºhttp://hi.baidu.com/coolrainbow/ ... d6c40c5aaf535e.html

½ñÌìÎÞÒâÖз¢ÏÖÁËintel±àÒëÆ÷ÓÅ»¯µÄÒ»¸öÎÊÌâ¡£ÎÒÓÐÒ»¸ö³ÌÐò£¬´óÖÂÊÇÕâÑù

program main
    integer, param ...

ѧϰÁË
5Â¥2010-09-13 09:08:38
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

tjyl

½ð³æ (ÕýʽдÊÖ)

¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
nono2009(½ð±Ò+2):¹ÄÀø½»Á÷ 2010-09-13 15:12:35
Ö»ÄÜ˵ÓÐЩÈËÏÖÔÚ»¹ÓÃÑ­»·¹Ì¶¨´ÎÊýÀ´ÑÓʱ²»Æð×÷ÓÃÁË
gccÒ²»á×öÕâÑùµÄÓÅ»¯µÄ£¬²»ÊÇÊ²Ã´Ææ¹ÖµÄ¡£
6Â¥2010-09-13 13:06:09
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

weiwei43

ÖÁ×ðľ³æ (ÕýʽдÊÖ)

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
Ô­À´·¢ÏÖ±àÒëʱdebugºÍrelease½á¹û²»Ò»Ñù£¬ÊDz»ÊÇÒ²ÊÇÓÅ»¯µÄ½á¹û²»Í¬£¿
7Â¥2010-09-26 19:05:38
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

bulrush2008

ľ³æ (³õÈëÎÄ̳)

¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ǰ²»¾ÃÎÒÒ²·¢ÏÖÁËÀàËÆµÄÎÊÌ⣺ÓÃifort -Ox (x=1,2,3)ÓÅ»¯±àÒ룬³ÌÐò¶¼»áĪÃûÆäÃîµÄ±¬µô£¬¶øÇÒÊä³ö¶Ô²âÊÔ¡°Ì½Õ롱Ãô¸Ð¡£ºóÀ´²Å·¢ÏÖÓÃifort -O0±àÒ룬ÎÊÌâ¾ÍûÁË¡£Î£ÏÕ°¡¡£
ÐÐÓв»ã«ÓÚÐÄÔòÄÙÒÑ¡£
8Â¥2016-01-21 22:22:59
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

virtualzx

ľ³æ (ÖøÃûдÊÖ)

¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
Õâ²»ÊDZàÒëÆ÷µÄÎÊÌ⣬ÊÇÄã³ÌÐò±¾ÉíÓÐbug£¬¶øÓÅ»¯Òý±¬ÁËbug¡£ÄãµÄÎÊÌâºÜ¿ÉÄÜÊDZäÁ¿Ã»³õʼ»¯£¬Ï±êÔ½½çµÈ¡£

Èç¹ûÄãµ÷ÓÃÁËÒ»¸öºÜ¸´Ôӵĺ¯Êý£¬µ«ÊÇÍêȫûÓõ½ËüµÄÊä³ö£¬Ò²Ã»ÓиıäÈκκ¯ÊýÍâµÄ±äÁ¿£¬ÄÇ˵Ã÷Õâ¸öº¯Êý±¾Éí¾ÍÊÇÒ»¶ÎÀ¬»ø´úÂ룬ÓÅ»¯¾ÍÊÇÓ¦¸Ã°ÑËüÄõôµÄ¡£Õâ²»ÄܽÐΣÏÕ£¬·´µ¹ËµÃ÷ËüÅÉÉÏÓó¡ÁË

·¢×ÔСľ³æIOS¿Í»§¶Ë
9Â¥2016-01-22 04:17:29
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

hwliu11

гæ (³õÈëÎÄ̳)

¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
¿ªÆôÓÅ»¯´úÂë³öÎÊÌ⣬´úÂë¶àÉÙ¶¼ÊÇÓÐÎÊÌâµÄ
10Â¥2016-01-22 14:15:23
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ coolrainbow µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ²ÄÁÏÀà284µ÷¼Á +20 Ïë»»ÊÖ»ú²»Ïë½âÊ 2026-04-08 24/1200 2026-04-09 03:34 by ËïСС12457
[¿¼ÑÐ] 085404£¬334·Ö£¬Çóµ÷¼Á +5 sunjie8888 2026-04-08 5/250 2026-04-08 21:39 by 313165yang
[¿¼ÑÐ] 318Çóµ÷¼Á +13 ykyhsa 2026-04-05 15/750 2026-04-08 21:37 by wj165256
[¿¼ÑÐ] 293·ÖÇóµ÷¼Á£¬ÍâÓïΪ¶íÓï +7 ¼ÓÒ»Ò»¾Å 2026-04-07 10/500 2026-04-08 20:14 by yutian743
[¿¼ÑÐ] »·¾³×¨Ë¶µ÷¼Á +15 »á˵»°µÄÖâ×Ó 2026-04-06 15/750 2026-04-08 18:56 by »·»¯²Ä-СÉú
[¿¼ÑÐ] Çóµ÷¼Á +14 ÕÅzic 2026-04-05 15/750 2026-04-08 16:14 by Ò»Ö»ºÃ¹û×Ó?
[¿¼ÑÐ] Ò»Ö¾Ô¸ÉúÎïÓëÒ½Ò©£¬296·Ö£¬Çóµ÷¼Á +14 66¹ 2026-04-03 16/800 2026-04-08 10:38 by tjzhao
[¿¼ÑÐ] 287Çóµ÷¼Á +6 Fnhc 2026-04-07 6/300 2026-04-08 10:05 by xingguangj
[¿¼ÑÐ] 259Çóµ÷¼Á +5 ¾Í°®³ÔÍÁ¶¹Ñ½Ñ½ 2026-04-07 5/250 2026-04-07 22:40 by JourneyLucky
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +17 СÁõͬѧ߹߹ 2026-04-06 18/900 2026-04-07 11:41 by Ê«Óë×ÔÓÉ
[¿¼ÑÐ] Ò»Ö¾Ô¸ÄϺ½£¬ÊýһӢһѧ˶317Çóµ÷¼Á£¡£¡ +6 Acaciad 2026-04-04 6/300 2026-04-06 12:13 by ¿¼ÑÐѧУÕеãÈË
[¿¼ÑÐ] µ÷¼Á Ò»Ö¾Ô¸¼ªÁÖ´óѧ357·Ö +5 .Starry. 2026-04-04 5/250 2026-04-06 09:28 by cql1109
[¿¼ÑÐ] 306·Ö²ÄÁÏÓ뻯¹¤Çóµ÷¼Á +7 Àè°ÉÀ²À²ÄãºÜÓÐà 2026-04-03 7/350 2026-04-05 17:18 by Hdyxbekcb
[¿¼ÑÐ] 085701Çóµ÷¼Á +7 ¹¨ÓíÃú 2026-04-04 8/400 2026-04-04 13:49 by ССÊ÷2024
[¿¼ÑÐ] ¿¼Ñе÷¼Á +4 zybz³å³å³å 2026-04-03 6/300 2026-04-04 13:08 by zybz³å³å³å
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©¿Æ¼¼´óѧ²ÄÁϹ¤³Ì085601£¬Çóµ÷¼Á +17 cdyw 2026-04-02 18/900 2026-04-04 11:14 by w_xuqing
[¿¼ÑÐ] ¿¼ÑÐÇóµ÷¼Á +3 ľÐÄÏë¼ÌÐøÉîÔì 2026-04-03 3/150 2026-04-03 21:56 by à£à£à£0119
[¿¼ÑÐ] 266·Ö£¬Ò»Ö¾Ô¸µçÆø¹¤³Ì£¬±¾¿Æ²ÄÁÏ£¬Çó²ÄÁÏרҵµ÷¼Á +9 ÍÛºôºßºôºß 2026-04-02 9/450 2026-04-03 12:05 by 1753564080
[¿¼ÑÐ] 330Çóµ÷¼Á +3 °×ÉñÎØºôºô 2026-04-02 3/150 2026-04-03 10:15 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 348Çóµ÷¼Á +6 ÎâÑå׿24k 2026-04-02 6/300 2026-04-02 14:07 by ¸øÄãÄã×¢ÒâÐÝÏ¢
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û