Znn3bq.jpeg
²é¿´: 2810  |  »Ø¸´: 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µÄ»ØÌû
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] »¯¹¤Çóµ÷¼Á£¡ +27 RichLi_ 2026-04-06 27/1350 2026-04-08 22:57 by jean5056
[¿¼ÑÐ] ²ÄÁÏÓ뻯¹¤×¨Ë¶306·ÖÕÒºÏÊʵ÷¼Á +27 ²×º£ÇáÖÛe 2026-04-06 28/1400 2026-04-08 22:06 by wdyheheeh
[¿¼ÑÐ] Ò»Ö¾Ô¸Ö£ÖÝ´óѧ085600Çóµ÷¼Á +21 ³ÔµÄ²»ÉÙ 2026-04-05 24/1200 2026-04-08 16:47 by sunhuadong
[¿¼ÑÐ] 273Çóµ÷¼Á +41 ÂóС¶£µ± 2026-04-06 48/2400 2026-04-08 15:16 by screening
[¿¼ÑÐ] Ò»Ö¾Ô¸211£¬»¯Ñ§Ñ§Ë¶£¬310·Ö£¬±¾¿ÆÖصãË«·Ç£¬Çóµ÷¼Á +20 ŬÁ¦·Ü¶·112 2026-04-07 21/1050 2026-04-08 14:54 by screening
[¿¼ÑÐ] ÇóÖú071001µ÷¼Á£¡£¡£¡ +6 »ÆÊØËÉ 2026-04-05 7/350 2026-04-08 11:54 by Öí»á·É
[¿¼ÑÐ] 316Çóµ÷¼Á +4 15318418673 2026-04-07 4/200 2026-04-07 22:12 by hemengdong
[¿¼ÑÐ] 305·ÖÇóµ÷¼Á +3 ¹þ_¹þ_¹þ_¹þ_¹þ 2026-04-04 5/250 2026-04-07 14:49 by ¹þ_¹þ_¹þ_¹þ_¹þ
[¿¼ÑÐ] Ò»Ö¾Ô¸¹ú¿Æ´óÐŹ¤Ëù,Ó¢¶þÊý¶þ408×Ü·Ö293·ÖÇóµ÷¼Á +3 ilcyuan 2026-04-02 4/200 2026-04-06 16:35 by likeihood
[¿¼ÑÐ] 377Çóµ÷¼Á +6 by.ovo 2026-04-05 6/300 2026-04-05 22:18 by dongzh2009
[¿¼ÑÐ] 308Çóµ÷¼Á +3 ÖÕ²»ËÆ´Óǰ 2026-04-05 3/150 2026-04-05 20:07 by à£à£à£0119
[¿¼ÑÐ] 085602µ÷¼Á ³õÊÔ×Ü·Ö335 +12 19123253302 2026-04-04 12/600 2026-04-05 08:08 by 544594351
[¿¼ÑÐ] Ò»Ö¾Ô¸Ö£´ó0705Çóµ÷¼Á +3 éÙʮһ 2026-04-02 4/200 2026-04-05 00:05 by chongya
[¿¼ÑÐ] 325Çóµ÷¼Á +4 ´º·ç²»½èÒâ 2026-04-04 4/200 2026-04-04 22:08 by à£à£à£0119
[¿¼ÑÐ] 319Çóµ÷¼Á +4 ÐÇÐDz»Õ£ÑÛà¶ 2026-04-03 4/200 2026-04-04 16:25 by ÖзÉÔº¿Õ¹ÜѧԺÑ
[¿¼ÑÐ] Ò»Ö¾Ô¸±±½»´ó²ÄÁϹ¤³Ì×Ü·Ö358 +6 cs0106 2026-04-03 6/300 2026-04-04 11:20 by w_xuqing
[¿¼ÑÐ] 266Çóµ÷¼Á +8 ѧԱ97LZgn 2026-04-03 8/400 2026-04-04 09:02 by 20021109
[¿¼ÑÐ] 268Çóµ÷¼Á +8 ÄãºÃtg 2026-04-03 9/450 2026-04-04 05:08 by gswylq
[¿¼ÑÐ] 081200-11408-276ѧ˶Çóµ÷¼Á +5 ´Þwj 2026-04-03 5/250 2026-04-03 15:06 by arrow8852
[¿¼ÑÐ] 372·Ö²ÄÁÏÓ뻯¹¤£¨085600£©Ò»Ö¾Ô¸ºþÄÏ´óѧÇóµ÷¼Á +5 À¶¼ãƬ 2026-04-02 6/300 2026-04-02 21:37 by dongzh2009
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û