²é¿´: 2747  |  »Ø¸´: 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µÄ»ØÌû

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µÄ»ØÌû
²é¿´È«²¿ 10 ¸ö»Ø´ð

hakekill

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

¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
Õâ¸öȷʵÊǵÚÒ»´ÎÌý˵£¬²»ÖªµÀgfortranÊDz»ÊÇÕâÑù
2Â¥2010-09-12 19:06:22
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢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µÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Ò»Ö¾Ô¸¼ªÁÖ´óѧ²ÄÁÏѧ˶321Çóµ÷¼Á +9 Ymlll 2026-03-18 12/600 2026-03-20 00:01 by 23Postgrad
[¿¼ÑÐ] 307Çóµ÷¼Á +9 ÀäóÏ123 2026-03-17 9/450 2026-03-19 22:44 by ѧԱ8dgXkO
[¿¼ÑÐ] 0817 »¯Ñ§¹¤³Ì 299·ÖÇóµ÷¼Á ÓпÆÑо­Àú ÓжþÇøÎÄÕ +18 rare12345 2026-03-18 18/900 2026-03-19 22:36 by ѧԱ8dgXkO
[¿¼ÑÐ] 321Çóµ÷¼Á +8 ºÎÈó²É123 2026-03-18 10/500 2026-03-19 16:46 by ºÎÈó²É123
[¿¼ÑÐ] ÄÜÔ´²ÄÁÏ»¯Ñ§¿ÎÌâ×éÕÐÊÕ˶ʿÑо¿Éú8-10Ãû +4 ÍÑÓ±¶ø³ö 2026-03-16 12/600 2026-03-19 16:17 by ÍÑÓ±¶ø³ö
[¿¼ÑÐ] 324·Ö 085600²ÄÁÏ»¯¹¤Çóµ÷¼Á +3 llllkkkhh 2026-03-18 3/150 2026-03-19 14:22 by houyaoxu
[¿¼ÑÐ] 287Çóµ÷¼Á +3 ³¿»èÏßÓëÐǺ£ 2026-03-19 4/200 2026-03-19 12:32 by peike
[¿¼ÑÐ] Ò»Ö¾Ô¸Öк£Ñó²ÄÁϹ¤³Ìר˶330·ÖÇóµ÷¼Á +7 С²Ä»¯±¾¿Æ 2026-03-18 7/350 2026-03-19 10:46 by Linda Hu
[¿¼ÑÐ] Ò»Ö¾Ô¸985£¬±¾¿Æ211£¬0817»¯Ñ§¹¤³ÌÓë¼¼Êõ319Çóµ÷¼Á +10 Liwangman 2026-03-15 10/500 2026-03-19 10:25 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 0817µ÷¼Á +3 ûÓдð°¸_ 2026-03-14 3/150 2026-03-19 09:51 by Xu de nuo
[¿¼ÑÐ] 304Çóµ÷¼Á +6 ˾¿Õ. 2026-03-18 6/300 2026-03-18 23:03 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] 297Çóµ÷¼Á +8 Ï·¾«µ¤µ¤µ¤ 2026-03-17 8/400 2026-03-18 14:30 by laoshidan
[¿¼ÑÐ] 302Çóµ÷¼Á +10 ºôºôºô¡£¡£¡£¡£ 2026-03-17 10/500 2026-03-18 12:45 by Linda Hu
[¿¼ÑÐ] ²ÄÁÏ£¬·ÄÖ¯£¬ÉúÎ0856¡¢0710£©£¬»¯Ñ§ÕÐÉúÀ² +3 Eember. 2026-03-17 9/450 2026-03-18 10:28 by Eember.
[¿¼ÑÐ] 085601Çóµ÷¼Á +4 Du.11 2026-03-16 4/200 2026-03-17 17:08 by ruiyingmiao
[¿¼ÑÐ] 326Çóµ÷¼Á +4 ŵ±´¶û»¯Ñ§½±êéê 2026-03-15 7/350 2026-03-16 17:11 by ŵ±´¶û»¯Ñ§½±êéê
[¿¼ÑÐ] 304Çóµ÷¼Á +5 ËØÄê¼ÀÓï 2026-03-15 5/250 2026-03-16 17:00 by ÎҵĴ¬Îҵĺ£
[¿¼ÑÐ] 070300»¯Ñ§Ñ§Ë¶Çóµ÷¼Á +6 Ì«Ïë½ø²½ÁË0608 2026-03-16 6/300 2026-03-16 16:13 by kykm678
[¿¼ÑÐ] 0703 ÎïÀí»¯Ñ§µ÷¼Á +3 ÎÒ¿ÉÒÔÉϰ¶µÄ¶Ô 2026-03-13 5/250 2026-03-16 10:50 by ÎÒ¿ÉÒÔÉϰ¶µÄ¶ÔÂ
[¿¼ÑÐ] Öпƴó²ÄÁÏÓ뻯¹¤319Çóµ÷¼Á +3 ÃÏöβÄÁÏ 2026-03-14 3/150 2026-03-14 20:10 by ms629
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û