24СʱÈÈÃŰæ¿éÅÅÐаñ    

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

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

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µÄ»ØÌû

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µÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 0817 »¯Ñ§¹¤³Ì 299·ÖÇóµ÷¼Á ÓпÆÑо­Àú ÓжþÇøÎÄÕ +18 rare12345 2026-03-18 18/900 2026-03-19 22:36 by ѧԱ8dgXkO
[¿¼²©] É격26Äê +3 °Ë6°Ë68 2026-03-19 3/150 2026-03-19 19:43 by nxgogo
[¿¼ÑÐ] Áº³ÉΰÀÏʦ¿ÎÌâ×é»¶Ó­ÄãµÄ¼ÓÈë +9 һѼѼӴ 2026-03-14 11/550 2026-03-19 17:22 by £¡±¾°µÒ»´Î£¡
[¿¼ÑÐ] 271²ÄÁϹ¤³ÌÇóµ÷¼Á +6 .6lL 2026-03-18 6/300 2026-03-19 15:41 by haoshis
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤Çóµ÷¼Á +7 Ϊѧ666 2026-03-16 7/350 2026-03-19 14:48 by ¾¡Ë´Ò¢1
[¿¼ÑÐ] 0703»¯Ñ§ 305Çóµ÷¼Á +4 FY_yy 2026-03-14 4/200 2026-03-19 05:54 by anny19840123
[¿¼ÑÐ] 298-Ò»Ö¾Ô¸Öйúũҵ´óѧ-Çóµ÷¼Á +7 ÊÖ»úÓû§ 2026-03-17 7/350 2026-03-18 14:34 by vgtyfty
[¿¼ÑÐ] 070300»¯Ñ§319Çóµ÷¼Á +6 ½õÀð0909 2026-03-17 6/300 2026-03-18 13:22 by Iveryant
[¿¼ÑÐ] ¹¤¿Æ²ÄÁÏ085601 279Çóµ÷¼Á +6 À§ÓÚÐdz¿ 2026-03-17 6/300 2026-03-18 10:21 by kkcoco25
[¿¼ÑÐ] 277µ÷¼Á +5 ×ÔÓɼå±ý¹û×Ó 2026-03-16 6/300 2026-03-17 19:26 by Àîleezz
[¿¼ÑÐ] ²ÄÁϹ¤³Ìר˶274Ò»Ö¾Ô¸211Çóµ÷¼Á +6 Ñ¦ÔÆÅô 2026-03-15 6/300 2026-03-17 11:05 by ѧԱh26Tkc
[¿¼ÑÐ] 275Çóµ÷¼Á +4 Ì«Ñô»¨ÌìÌ쿪ÐÄ 2026-03-16 4/200 2026-03-17 10:53 by ¹¦·ò·è¿ñ
[¿¼ÑÐ] 274Çóµ÷¼Á +5 ʱ¼äµã 2026-03-13 5/250 2026-03-17 07:34 by ÈÈÇéɳĮ
[¿¼ÑÐ] »úеר˶325£¬Ñ°ÕÒµ÷¼ÁԺУ +3 y9999 2026-03-15 5/250 2026-03-16 19:58 by y9999
[¿¼ÑÐ] 277²ÄÁÏ¿ÆÑ§Ó빤³Ì080500Çóµ÷¼Á +3 ×ÔÓɼå±ý¹û×Ó 2026-03-16 3/150 2026-03-16 14:10 by ÔËÆøyunqi
[¿¼ÑÐ] 0703 ÎïÀí»¯Ñ§µ÷¼Á +3 ÎÒ¿ÉÒÔÉϰ¶µÄ¶Ô 2026-03-13 5/250 2026-03-16 10:50 by ÎÒ¿ÉÒÔÉϰ¶µÄ¶ÔÂ
[¿¼ÑÐ] 0703»¯Ñ§µ÷¼Á 290·ÖÓпÆÑо­Àú£¬ÂÛÎÄÔÚͶ +7 ÄåÄågk 2026-03-14 7/350 2026-03-16 10:12 by houyaoxu
[¿¼ÑÐ] Öпƴó²ÄÁÏÓ뻯¹¤319Çóµ÷¼Á +3 ÃÏöβÄÁÏ 2026-03-14 3/150 2026-03-14 20:10 by ms629
[¿¼ÑÐ] 289Çóµ÷¼Á +4 ÕâôÃû×ÖÕ¦Ñù 2026-03-14 6/300 2026-03-14 18:58 by userper
[¿¼ÑÐ] Ò»Ö¾Ô¸¹þ¹¤´ó²ÄÁÏ324·ÖÇóµ÷¼Á +5 ãÆÐñ¶« 2026-03-14 5/250 2026-03-14 14:53 by ľ¹Ï¸à
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û