240 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 3. 3. 3 ] Compaq Fortran 기록 구조체의 데이터 항목의 배치
Compaq Fortran 기록 구조체의 데이터 항목의 배치 기록 구조는 FORTRAN 77 및 Fortran 90 표준에 대한 Compaq Fortran 언어 확장입니다. 기록 구조 RECORD 문을 사용하여 옵션으로 역시 Compaq Fortran 언어 확장이다 STRUCTURE 문을 설정합니다. STRUCTURE 문중의 데이터 항목의 순서는 데이터 항목을 저장 순서를 결정합...
![file file](http://www.yeonpil.net/zbxe/modules/document/tpl/icons/file.gif) |
연필 | 2012.11.22 |
239 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 3. 4 ] 정렬을 제어하는 옵션
정렬을 제어하는 옵션
다음 옵션은 Compaq Fortran 컴파일러는 일반적인 블록 구조 형식 데이터 및 Compaq Fortran 기록 구조에서 여러 데이터 항목을 자연스럽게 정렬하기 위해 (필요한 경우) 추가 충전을 제어 있습니다.
/ align : commons 옵션
일반적인 블록의 데이터를 필요에 따라 충전 바이트를 추가하여 최...
|
연필 | 2013.12.17 |
238 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 4 ] 배열의 효율적인 사용
배열의 효율적인 사용
배열의 참조와 인수로 전달 분은 특히 큰 배열을 사용하는 경우에는 런타임 성능에 큰 영향을 줄 수 있습니다. 이 절에서는 다음 항목에 대해 설명합니다.
배열의 효율적인 참조
배열 인수의 효율적인 전달 방법
|
연필 | 2014.02.21 |
237 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 4. 1 ] 배열의 효율적인 참조
배열의 효율적인 참조
이 절에서 설명하고있는 배열의 참조를 효율 화하는 기술의 대부분이 Compaq Fortran 루프 변환 최적화 ( / optimize : 5 설정)에 의해 자동으로 적용됩니다.
배열의 참조는 런타임 성능을 향상시킬 수있는 몇 가지 측면이 있습니다.
배열의 참조는 전체 배열 또는 배열의 대부분에 지속적인 참...
|
연필 | 2014.02.21 |
236 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 4. 2 ] 배열 인수의 효율적인 전달 방법
배열 인수의 효율적인 전달 방법
Fortran 90 / 95 배열 인수에는 두 가지 일반적인 형식이 있습니다.
FORTRAN 77에서 사용되었던 모양 명시 배열 이러한 배열은 차원 수와 범위가 고정되고, 컴파일 시에 알 수 있습니다. 형상없는 지정이 아닌 다른 형식 인수 (수취 쪽) 배열 ( 크기 인계 배열 등) 다음 논의는 형상 명...
|
연필 | 2014.02.21 |
235 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5 ] 전체적인 I/O 성능 향상
전체적인 I / O 성능 향상
전체적인 I / O 성능을 향상시키기위한 장치 I / O와 실제 CPU 시간을 모두 최소화 수 있습니다. 이 절에 나열된 기술은 많은 응용 프로그램의 성능을 크게 향상시킬 수 있습니다.
병목 현상은 실행의 최대 속도를 제한하는 실행중인 프로그램의 가장 느린 과정입니다. 일부 프로그램은 I / ...
|
연필 | 2014.02.21 |
234 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 1 ] 서식 파일 대신 서식없는 파일을 사용
서식 파일 대신 서식없는 파일을 사용
가능한 포맷되지 않은 파일을 사용하십시오. 숫자 데이터 서식없이 I / O는 서식있는 I / O보다 효율적이고 고정밀도입니다. 기본 서식없는 데이터 전송 시에 변경할 필요없이 외부 파일의 점유 공간이 줄어 듭니다.
한편, 서식 파일에 데이터를 내보낼 때 서식이 지정된 데이터...
|
연필 | 2014.02.21 |
233 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 2 ] 배열이나 문자열 전체를 내보냄
배열이나 문자열 전체를 내보냄
" 배열의 효율적인 사용 "에서 설명하는 배열 사용에 대한 일반적인 지침은 I / O 문을 사용하여 배열을 읽고 쓰는에도 적용됩니다.
불필요한 오버헤드를 없애기 위해 개별 요소를 여러 번 내보낼 것이 아니라 배열이나 문자열 전체를 한 번에 내보내도록합니다. I / O 정렬의 각 항목은...
|
연필 | 2014.02.21 |
232 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 3 ] 자연 저장 순서로 배열 데이터를 내보냄
자연 저장 순서로 배열 데이터를 내보냄
가능한 한 자연 오름차순 저장을 사용하십시오. 이것은 가장 왼쪽의 첨자가 가장 빠른 1 씩 변화하는 열 기본 순서입니다 ( " 배열의 효율적인 사용 "참조). 프로그램 이외의 순서로 데이터를 읽거나 있으면 효율적인 블록 이동할 수 없습니다.
전체 배열을 내보낼 것이 없으면 ...
|
연필 | 2014.02.21 |
231 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 4 ] 중간 결과를 메모리를 사용해 저장
중간 결과를 메모리를 사용해 저장
중간 결과를 주변 기기의 파일이 아닌 메모리에 저장함으로써 성능을 향상시킬 수 있습니다. 중간 저장소를 사용할 수 오히려 불리하게되는 상황 중 하나는 데이터가 시스템의 실제 메모리보다 훨씬과 큰 경우입니다. 이러한 경우 페이지 오류가 빈번하게 일어나고 가상 메모리의 성능...
|
연필 | 2014.02.21 |
230 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 5 ] DO 형태 반복 접이식 활성화
DO 형태 반복 접이식 활성화
DO 루프 접이식는 I / O 작업의 오버헤드를 줄일 수 있습니다. 일반적으로 I / O 정렬의 개별 요소가 Compaq Fortran RTL에 대한 호출을 개별적으로 생성합니다. 이러한 호출 처리 오버헤드 DO 형태 반복 가장 큽니다.
Compaq Fortran은 7 개까지 중첩되는 DO 형태 반복 최적화된 런타임 라...
|
연필 | 2014.02.21 |
229 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 6 ] 가변 형식을 사용
가변 형식을 사용 가변 형식 (Compaq Fortran 확장)은 FORMAT 문에서 사용할 수있는 꺾쇠 괄호 (<>) 안에있는 숫자 식입니다. 가변 형식 (VFE)은 런타임 형식과 거의 동일한 유연성을 가지고 있습니다만, 컴파일러가 I / O 형식을 런타임에 구문 분석하지 않아도 때문에 더 효율적입니다. 런타임에는 소량을 수행 실제로 데...
|
연필 | 2014.02.21 |
228 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 7 ] 기록 버퍼와 디스크 I/O를 효율적으로 사용
기록 버퍼와 디스크 I/O를 효율적으로 사용
읽기 또는 쓰기를하는 기록은 사용자 프로그램 버퍼와 Compaq Fortran 실행 시스템에서 파일을 열 때 설정되는 하나 이상의 디스크 블록 I / O 버퍼 사이에 전송됩니다. 읽거나 기록하는 기록이 매우 큰 경우를 제외하고 디스크의 읽고 쓰기시 디스크 블록 I / O 버퍼를 여러 ...
|
연필 | 2014.02.21 |
227 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 5. 8 ] RECL 지정
:: RECL 지정 ::
기록 길이 ( OPEN 문장 RECL 지정자)과 오버헤드 합계는 블록 사이즈의 배수 또는 제수, 장치에 따라 다릅니다. 예를 들어, BLOCKSIZE 8192 인 경우, RECL은 24576 (3 배) 또는 1024 (8로 나눈 값)이있을 수 있습니다.
RECL 값은 블록의 크기에 최대한 가깝게 설정되어야합니다 (다만 용량을 초과할 ...
|
연필 | 2014.02.21 |
226 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6 ] 런타임 효율성을 높이기 위해 소스 코드에 대한 추가 지침
:: 런타임 효율성을 높이기 위해 소스 코드에 대한 추가 지침::
데이터 정렬 및 배열 및 I / O의 효율적인 사용 이외에도 다른 소스 코딩 지침을 구현하여 실행시 성능을 향상시킬 수 있습니다.
런타임 성능이 어느 정도 향상시킬 수 있는지, 문장의 실행 횟수에 관련하고 있습니다. 예를 들어, 루프에서 실행되는 연...
|
연필 | 2014.03.14 |
225 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6. 1 ] 작은 정수와 작은 논리 데이터 항목을 피한다 (ia64 전용)
:: 작은 정수와 작은 논리 데이터 항목을 피한다 (ia64 전용) ::
배열 데이터 저장 공간 및 메모리 캐시 부족을 최소화하기 위해 배정 밀도 부동 소수점 숫자의 범위와 정밀도가 필요한 경우를 제외하고 64 비트 데이터가 아닌 32 비트 데이터를 사용하도록합니다 .
ia64 시스템에서는 32 비트 (KIND = 4)보다 작은 ...
|
연필 | 2014.03.14 |
224 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6. 2 ] 혼합 데이터 형식 산술 식을 피하기
:: 혼합 데이터 형식 산술 식을 피하기 ::
같은 계산에서 정수 데이터와 부동 소수점 (REAL) 데이터를 혼합하는 것은 피합니다. 부동 소수점 연산 (대입 문) 모든 숫자를 부동 소수점 값으로 표현하면 데이터를 고정 소수점 형식과 부동 소수점 형식간에 변환할 필요가 없습니다. 정수 연산의 모든 숫자를 정수 값으로 표...
|
연필 | 2014.03.14 |
223 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6. 3 ] 효율적인 데이터 형식을 사용
:: 효율적인 데이터 형식을 사용 ::
변수에 여러 데이터 형식을 사용할 경우 다음 순서에 따라 데이터 형식을 선택하십시오. 이 목록은 효율적인 순서로되어 있습니다.
ia32 시스템 INTEGER (4) INTEGER * 4로 표현되고있는 4 바이트 정수
INTEGER (8), INTEGER * 8로 표현되고있는 8 바이트 정수
REAL, REAL (KIND...
|
연필 | 2014.03.14 |
222 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6. 4 ] 실행 속도가 느린 산술 연산자의 사용을 피한다.
:: 실행 속도가 느린 산술 연산자의 사용을 피한다 ::
실행 속도가 낮은 산술 연산자를 피하기 위해 소스 코드를 수정하기 전에 최적화를 통해 많은 느린 산술 연산자가 빠른 산술 연산자로 변환 될 수 있음에 유의하십시오 . 예를 들어, 컴파일러는 H = J ** 2 식을 H = J * J 최적화합니다.
또한 느린 산술 연산자를...
|
연필 | 2014.03.14 |
221 | 6.성능 : 프로그램 실행 속도 향상 |
[ 6. 6. 5 ] EQUIVALENCE 문장의 사용을 피하기
:: EQUIVALENCE 문장의 사용을 피하기 ::
EQUIVALENCE 문장의 사용을 피하십시오. 이 글에는 다음과 같은 효과가 있습니다.
정렬되지 않은 데이터와 자연 경계에있는 데이터를 일으 킵니다.
다음과 같은 몇 가지 최적화를 방해합니다. 특정 조건에서 전역 데이터 분석 ( " 전역적인 최적화 "를 참조)
제어 변수가 E...
|
연필 | 2014.03.14 |