인텔 컴파일러. 새로운 컴파일러가 필요한 이유는 무엇입니까?
Intel C++ 및 Fortran 컴파일러와 MKL 라이브러리
Linux용 표준 GNU 컴파일러와 함께 Intel C++ 및 Fortran 컴파일러가 NIVC 컴퓨팅 컴플렉스의 클러스터에 설치됩니다. 현재(2006년 초) 컴파일러 버전 9.1이 모든 클러스터에 설치되어 있습니다. 이 페이지는 이러한 컴파일러의 가장 중요한 옵션과 설정뿐만 아니라 GNU 컴파일러와의 주요 차이점을 설명하는 데 전념합니다. 이 페이지는 주로 MSU 연구 컴퓨팅 센터 클러스터 사용자를 대상으로 하지만 다른 러시아어를 사용하는 사용자에게도 유용할 수 있습니다. IA-64 플랫폼의 컴파일과 관련된 문제는 여기서 다루지 않습니다.
또한 Intel 라이브러리는 모든 클러스터에 설치됩니다. 커널 수학 라이브러리(MKL) 버전 8.0.2. 라이브러리는 /usr/mkl 디렉토리에 있습니다. 하위 디렉터리 32, 64 및 em64t는 lib 디렉터리에서 사용할 수 있습니다. Ant 클러스터에서는 em64t 하위 디렉토리의 라이브러리를 사용해야 하고 다른 클러스터에서는 32 하위 디렉토리의 라이브러리를 사용해야 합니다. 필요한 모든 문서와 예제는 /usr/mkl/doc 디렉토리에서 얻을 수 있습니다.
새로운 컴파일러가 필요한 이유는 무엇입니까?
새로운 컴파일러에 대한 필요성은 주로 a) Fortran 90의 프로그래밍을 지원하고 b) C로 변환한 다음 gcc를 사용하여 컴파일하는 g77 컴파일러에서 제공하는 것보다 더 강력한 Fortran 프로그램 최적화를 위해 발생했습니다.
PGI(포틀랜드 그룹) 컴파일러도 이러한 요구 사항을 충족하지만 개발사에서는 러시아에 공급을 거부했습니다.
사용하는 방법?
Intel 컴파일러는 명령을 사용하여 호출됩니다. ICC(C 또는 C++), ICPC(C++) 및 만약에(포트란 77/90). MPI 프로그램을 컴파일하고 어셈블하기 위한 mpicc, mpiCC 및 mpif77 명령도 Intel 컴파일러를 사용하도록 구성됩니다.
mpigcc, mpig++ 및 mpig77 명령을 사용하여 GNU 컴파일러를 사용하는 것도 가능합니다(Fortran 90은 지원되지 않음).
입력 파일
기본적으로 확장자를 가진 파일은 .cpp그리고 .cxx C++ 언어의 소스 텍스트로 간주되며 확장자를 가진 파일은 .씨- C 소스 코드 및 icpc 컴파일러는 .c 파일을 C++ 소스 코드로 컴파일합니다.
확장자가 있는 파일 .에프, .ftn그리고 .을 위한고정된 형태의 표기법을 사용하여 Fotran 언어의 소스 텍스트로 인식되며 파일은 .fpp그리고 .에프추가적으로 Fortran 언어 전처리기를 통과했습니다. 확장자를 가진 파일 .f90자유 형식 표기법을 사용하는 Fortran 90/95 소스 텍스트로 간주됩니다. 옵션을 사용하여 Fortran 프로그램에 대한 고정 또는 자유 형식의 표기법을 명시적으로 지정할 수 있습니다. -FI그리고 -정말로각기.
확장자를 가진 파일 .에스 IA-32의 어셈블리 언어 코드로 인식됩니다.
인텔 컴파일러 기능
여기에서는 개발자가 사용자 설명서에 언급한 일부 의견과 함께 인텔 컴파일러의 특성을 제시합니다.
- 상당한 최적화
분명히 이는 높은 수준에서 코드를 최적화하는 것을 의미합니다. 우선, 거의 모든 컴파일러가 어느 정도 성공을 거두는 다양한 루프 변환입니다. - 부동 소수점 최적화
분명히 이는 우선 하드웨어 수준에서 구현되는 명령의 최대 사용을 의미합니다. - 절차간 최적화
저것들. 특정 기능의 코드에만 영향을 미치는 일반적인 최적화와 달리 전체 프로그램의 전역 최적화 - 프로필 기반 최적화
저것들. 테스트 모드에서 프로그램을 실행하고, 자주 사용되는 함수 내에서 특정 코드 조각을 전달하는 데 걸리는 시간에 대한 데이터를 수집한 다음 이 데이터를 최적화에 사용하는 기능 - 펜티엄 III 프로세서의 SSE 명령어 세트 지원
참고: 컴퓨팅 작업의 경우 SSE2 명령이 더 중요합니다. 64비트 실수에 대한 벡터 명령은 아직 처리할 수 없는 Pentium 4 프로세서에서만 지원됩니다. - 자동 벡터화
저것들. 다시, 컴파일러에 의해 자동으로 삽입된 SSE 및 SSE2 명령을 사용하여 - SMP 시스템 프로그래밍을 위한 OpenMP 지원
참고: 클러스터에서는 주로 MPI 인터페이스를 사용하는 것이 좋습니다. 클러스터에서 OpenMP의 광범위한 사용은 예상되지 않으며 그러한 실험은 아직 수행되지 않았습니다. 하지만 공유 메모리용으로 병렬화된 라이브러리(BLAS 등)를 사용하는 것이 합리적일 수 있습니다. - 데이터 프리페칭
저것들. 분명히 메모리에서 데이터 캐시로 사전 로드 명령을 사용하는 것은 시간이 지나면 필요할 것입니다. - 다양한 프로세서에 대한 "디스패칭" 코드
저것들. 단일 실행 파일에서 다양한 프로세서에 대한 코드를 생성하는 기능을 통해 다음과 같은 이점을 얻을 수 있습니다. 최신 프로세서이전 프로세서와 프로그램의 바이너리 호환성을 유지하면서 최고의 성능을 달성합니다. 우리 클러스터에서는 아직 관련이 없습니다. 왜냐하면 Pentium III 프로세서만 사용되며 클러스터에서 컴파일된 프로그램은 다른 컴퓨터에서 전송 및 실행될 수 없습니다.
기본 컴파일러 옵션
물론 가장 흥미로운 것은 코드 최적화 옵션입니다. 대부분의 옵션은 C++ 및 Fortran 컴파일러에 공통됩니다. 더 상세 설명영어 사용자 설명서의 옵션.
최적화 수준 | |
---|---|
옵션 | 설명 |
-O0 | 최적화를 비활성화합니다. |
-O1 또는 -O2 | 속도에 대한 기본 최적화. 라이브러리 함수의 인라인 삽입이 비활성화됩니다. C++ 컴파일러의 경우 이러한 옵션은 동일한 최적화를 제공합니다. Fortran 컴파일러의 경우 -O2 옵션이 더 좋습니다. 사이클 프로모션도 포함됩니다. |
-O3 | 루프 변환, 데이터 프리페칭, OpenMP 사용을 포함한 더욱 강력한 최적화. 일부 프로그램은 이전 버전에 비해 향상된 성능을 보장하지 못할 수 있습니다. -O2. 벡터화 옵션과 함께 사용하는 것이 좋습니다. -xK그리고 -xW. |
-풀기[n] | 최대 n번까지 루프 풀기를 활성화합니다. |
특정 프로세서에 대한 최적화 | |
옵션 | 설명 |
-tpp6 | Penitum Pro, Pentium II 및 Pentium III 프로세서에 대한 최적화 |
-tpp7 | Penitum 4 프로세서에 대한 최적화(이 옵션은 IA-32 컴파일러에 대해 기본적으로 활성화되어 있습니다) |
-xM | Pentium MMX, Pentium II 및 이후 프로세서에 특정한 MMX 확장을 사용한 코드 생성 |
-xK | 펜티엄 III 프로세서 관련 SSE 확장을 사용한 코드 생성 |
-xW | Pentium 4 프로세서 관련 SSE2 확장을 사용한 코드 생성 |
절차간 최적화 | |
-ip | 프로시저 간 최적화는 하나의 파일 내에서 활성화됩니다. 옵션을 지정하시면 -ip_no_inlining이면 인라인 함수 삽입이 비활성화됩니다. |
-ipo | 서로 다른 파일 간의 절차간 최적화를 활성화합니다. |
프로필을 사용한 최적화 | |
-prof_gen | 프로파일링에 사용될 "프로파일링" 코드가 생성됩니다. 프로그램의 특정 장소를 통과하는 빈도에 대한 데이터 수집 |
-풍부한 | 프로파일링 단계에서 얻은 데이터를 기반으로 최적화가 수행됩니다. 절차간 최적화 옵션과 함께 사용하는 것이 합리적입니다. -ipo. |
SMP 시스템의 병렬화 | |
-openmp | OpenMP 2.0 표준 지원을 활성화합니다. |
-평행한 | 자동 루프 병렬화가 활성화되었습니다. |
성능
ixbt.com 서버에 게시된 SPEC CPU2000 테스트 실행 결과에 따르면 Intel 컴파일러 버전 6.0은 gcc 컴파일러 버전 2.95.3, 2.96 및 3.1, PGI 버전 4.0.2에 비해 거의 보편적으로 더 뛰어났습니다. 이 테스트는 2002년에 Pentium 4/1.7GHz 프로세서와 RedHat Linux 7.3이 설치된 컴퓨터에서 수행되었습니다.
Polyhedron에서 실시한 테스트에 따르면 Intel Fortran 컴파일러 버전 7.0은 다른 Linux용 Fortran 77 컴파일러(Absoft, GNU, Lahey, NAG, NAS, PGI)보다 거의 보편적으로 우수했습니다. 일부 테스트에서만 Intel 컴파일러는 Absoft, NAG 및 Lahey 컴파일러보다 약간 열등합니다. 이 테스트는 Pentium 4/1.8 GHz 프로세서와 Mandrake Linux 8.1이 설치된 컴퓨터에서 수행되었습니다.
Intel 컴파일러 버전 9.1은 또한 gcc 컴파일러보다 성능이 뛰어나며 Absoft, PathScale 및 PGI에 필적하는 성능을 보여줍니다.
컴파일러(GCC 또는 Intel) 선택과 최적화 옵션이 실제 문제에 대한 작업 속도에 미치는 영향에 대한 데이터를 보내주신 사용자와 독자에게 감사드립니다.
도서관
C 언어 컴파일러는 GNU 프로젝트 내에서 개발된 런타임 라이브러리( libc.a).
인텔 C++ 컴파일러에는 다음 라이브러리가 제공됩니다.
- libcprts.a- Dinkumware에서 개발한 C++ 언어의 런타임 라이브러리입니다.
- libcxa.a- Intel의 C++ 개발을 위한 추가 런타임 라이브러리.
- libimf.a- 삼각법, 쌍곡선, 지수 함수, 특수 함수, 복합 함수 및 기타 함수의 최적화되고 고정밀 구현을 포함하는 Intel에서 개발한 수학 함수 라이브러리입니다(자세한 내용은 함수 목록 참조).
- libirc.a- 프로세서에 따라 프로파일링(PGO) 및 코드 디스패치를 위한 런타임 지원(위 참조)
- libguide.a- OpenMP 구현.
이 목록에는 정적 라이브러리가 포함되어 있지만 대부분 동적 라이브러리도 있습니다. 시작 중에 연결된 옵션( .그래서).
Fortran 컴파일러에는 다음 라이브러리가 제공됩니다. libCEPCF90.a, libIEPCF90.a, libintrins.a, libF90.a, 수학 함수 libimf.a 라이브러리도 사용됩니다.
실행 파일 빌드
라이브러리는 정적으로(빌드 중) 또는 동적으로(프로그램 시작 중) 연결할 수 있습니다. 동적 접근 방식을 사용하면 실행 파일의 크기를 줄일 수 있고 메모리에서 동일한 라이브러리 복사본을 공유할 수 있지만 이를 위해서는 프로그램이 실행될 각 노드에 사용되는 전체 동적 라이브러리 세트를 설치해야 합니다. .
따라서 Linux 시스템에 인텔 컴파일러를 설치하고 다른 시스템에서 컴파일된 실행 파일을 실행하려는 경우 정적 빌드(더 쉬움)를 사용하거나 인텔 동적 라이브러리를 이러한 시스템에 복사해야 합니다(일반적으로 다음 위치에서). /opt/intel /compiler70/ia32/lib와 같은 디렉토리)를 /etc/ld.so.conf 파일에 나열된 디렉토리 중 하나로 복사하고 동일한 GNU/Linux 동적 라이브러리 세트가 이러한 시스템에 설치되어 있는지 확인하십시오. .
기본적으로 모든 Intel 개발 라이브러리(libcxa.so 제외)는 정적으로 링크되며 모든 Linux 시스템 라이브러리와 GNU 라이브러리는 동적으로 링크됩니다. 옵션 사용 -공전컬렉터(링크 편집기)가 모든 라이브러리를 정적으로 연결하도록 강제할 수 있습니다(이렇게 하면 볼륨이 증가합니다). 실행 가능 파일) 및 옵션을 사용하여 -i_dynamic모든 Intel 개발 라이브러리를 동적으로 연결할 수 있습니다.
보기 옵션을 사용하여 추가 라이브러리를 연결하는 경우 -도서관옵션을 사용해야 할 수도 있습니다 -L디렉토리라이브러리가 있는 경로를 지정합니다.
옵션 사용 -B정적그리고 -Bdynamic다음에 지정된 각 라이브러리의 동적 또는 정적 연결을 명시적으로 지정할 수 있습니다. 명령줄.
옵션 사용 -씨실행 파일의 어셈블리는 비활성화되고 컴파일만 수행됩니다(객체 모듈 생성).
Fortran과 C에서 모듈 공유
Fortran과 C로 작성된 모듈을 공유하려면 개체 모듈의 프로시저 이름 지정, 매개변수 전달, 전역 변수에 대한 액세스(있는 경우)에 동의해야 합니다.
기본적으로 인텔 포트란 컴파일러는 프로시저 이름을 소문자로 변환하고 이름 끝에 밑줄을 추가합니다. C 컴파일러는 함수 이름을 변경하지 않습니다. 따라서 Fortran 모듈에서 C로 구현된 함수나 프로시저 FNNAME을 호출하려면 C 모듈에서 fnname_을 호출해야 합니다.
Fortran 컴파일러는 다음 옵션을 지원합니다. -nus [파일 이름], 내부 프로시저 이름에 밑줄 추가를 비활성화할 수 있습니다. 파일 이름이 지정되면 지정된 파일에 나열된 프로시저 이름에 대해서만 수행됩니다.
기본적으로 Fortran에서는 매개변수가 참조로 전달되고 C에서는 항상 값으로 전달됩니다. 따라서 C 모듈에서 Fortran 프로시저를 호출할 때 실제 매개변수의 값이 포함된 해당 변수에 대한 포인터를 매개변수로 전달해야 합니다. Fortran 모듈에서 호출해야 하는 함수를 C로 작성할 때 형식 매개변수를 해당 유형에 대한 포인터로 설명해야 합니다.
C 모듈에서는 포트란 모듈 내부에 정의된 COMMON 블록을 사용할 수 있습니다(자세한 내용은 인텔 포트란 컴파일러 사용자 안내서의 C와 포트란 혼합 장 참조).
Intel 및 GCC 컴파일러 공유
Intel C++ 컴파일러에서 생성된 C 개체 모듈은 GCC 컴파일러 및 GNU C 라이브러리에서 생성된 모듈과 호환됩니다. 따라서 이러한 모듈은 icc 또는 gcc 명령을 사용하여 컴파일된 단일 프로그램에서 함께 사용할 수 있지만 Intel 라이브러리를 올바르게 포함하려면 icc를 사용하는 것이 좋습니다.
인텔 컴파일러는 GNU 프로젝트에서 사용하고 GCC 컴파일러에서 지원하는 다양한 비표준 C 언어 확장을 지원합니다(그러나 전부는 아닙니다. 자세한 내용은 여기를 참조하십시오).
사용자 매뉴얼에는 C++ 및 Fortran 언어의 개체 모듈 호환성에 대한 언급이 없으며 분명히 지원되지 않습니다.
표준 지원
Linux용 인텔 C++ 컴파일러 7.0은 ANSI/ISO C 언어 표준(ISO/IEC 9899/1990)을 지원합니다. ANSI C 표준과 엄격한 호환성을 확립하는 것이 가능합니다( -안시) 또는 확장된 ANSI C 방언( -Xa). 옵션 사용 시 -c99
잡지의 이전 호에서 우리는 Intel VTune 성능 분석기 제품군의 제품에 대해 논의했습니다. 이는 응용 프로그램 개발자들 사이에서 당연히 인기가 있고 코드에서 감지할 수 있는 성능 분석 도구입니다. 팀 애플리케이션, 이는 너무 많은 CPU 리소스를 낭비하므로 개발자에게 잠재적인 가능성을 식별하고 제거할 수 있는 기회를 제공합니다. 좁은 장소, 유사한 코드 섹션과 연관되어 애플리케이션 개발 프로세스 속도를 높입니다. 그러나 애플리케이션의 성능은 개발에 사용되는 컴파일러의 효율성과 기능에 따라 크게 달라집니다. 하드웨어기계어 코드를 생성할 때 사용됩니다.
Windows 및 Linux용 인텔 인텔 C++ 및 인텔 포트란 컴파일러의 최신 버전을 사용하면 다음 기반 시스템에 대한 애플리케이션 성능 이점을 얻을 수 있습니다. 인텔 프로세서아이태니엄 2, 인텔 제온 및 인텔 펜티엄 4 하이퍼-스레딩 기술과 같은 프로세서 기능을 사용하므로 다른 제조업체의 기존 컴파일러에 비해 최대 40% 향상됩니다.
이 컴파일러 제품군의 코드 최적화와 관련된 차이점에는 부동 소수점 연산을 수행하기 위한 스택 사용, 프로시저 간 최적화(IPO), 애플리케이션 프로필에 따른 최적화(PGO(Profile Guided Optimization)), 캐시에 데이터 사전 로드( 데이터 프리페칭), 메모리 액세스와 관련된 대기 시간 방지, Intel 프로세서의 특징적인 기능 지원(예: 스트리밍 데이터 처리를 위한 확장 Intel Streaming SIMD Extensions 2, Intel Pentium 4의 특징), 코드 실행의 자동 병렬화, 애플리케이션 생성, 여러 환경에서 실행 다른 유형그 중 하나를 최적화할 때 프로세서, 후속 코드를 "예측"하기 위한 도구(분기 예측), 실행 스레드 작업에 대한 지원 확장.
Intel 컴파일러는 Alias/Wavefront, Oracle, Fujitsu Siemens, ABAQUS, Silicon Graphics, IBM과 같은 잘 알려진 회사에서 사용됩니다. 여러 회사에서 실시한 독립적인 테스트에 따르면 Intel 컴파일러의 성능은 다른 제조업체의 컴파일러 성능보다 훨씬 높습니다(예: http://intel.com/software/products/compilers/techtopics/compiler_gnu_perf 참조). .pdf).
아래에서는 몇 가지 기능을 살펴보겠습니다. 최신 버전데스크탑 및 서버용 Intel 컴파일러 운영체제.
Microsoft Windows 플랫폼용 컴파일러
Windows용 인텔 C++ 컴파일러 7.1
Intel C++ Compiler 7.1은 Intel Centrino 기술을 사용하는 Intel Itanium, Intel Itanium 2, Intel Pentium 4 및 Intel Xeon 프로세서는 물론 Intel Pentium M 프로세서에 고도로 최적화된 코드를 제공하는 올해 초에 출시된 컴파일러입니다. 모바일 장치.
지정된 컴파일러는 Microsoft Visual C++ 6.0 및 Microsoft Visual Studio .NET 개발 도구와 완벽하게 호환됩니다. 해당 컴파일러는 해당 개발 환경에 구축될 수 있습니다.
이 컴파일러는 ANSI 및 ISO C/C++ 표준을 지원합니다.
Windows용 인텔 포트란 컴파일러 7.1
올해 초에 출시된 Windows용 인텔 포트란 컴파일러 7.1을 사용하면 Intel Itanium, Intel Itanium 2, Intel Pentium 4 및 Intel Xeon, Intel Pentium M 프로세서에 최적화된 코드를 생성할 수 있습니다.
이 컴파일러는 Microsoft Visual C++ 6.0 및 Microsoft Visual Studio .NET 개발 도구와 완벽하게 호환됩니다. 즉, 해당 개발 환경에 구축될 수 있습니다. 또한 이 컴파일러를 사용하면 64비트 Intel Fortran 컴파일러를 사용하는 32비트 Pentium 프로세서에서 Microsoft Visual Studio를 사용하여 Itanium/Itanium 2 프로세서에서 실행되는 운영 체제용 64비트 응용 프로그램을 개발할 수 있습니다. 코드를 디버깅할 때 이 컴파일러를 사용하면 디버거를 사용하여 다음을 수행할 수 있습니다. 마이크로소프트 플랫폼.그물.
Compaq 제품이 설치되어 있는 경우 원본 Intel Fortran Compiler 7.1 대신 Visual Fortran 6.6을 사용할 수 있습니다. 이러한 컴파일러는 해당 레벨에서 호환되기 때문입니다. 소스 코드.
Windows용 인텔 포트란 컴파일러 7.1은 ISO Fortran 95 표준과 완벽하게 호환되며 C와 Fortran의 두 가지 언어로 된 코드가 포함된 응용 프로그램의 생성 및 디버깅을 지원합니다.
Linux 플랫폼용 컴파일러
Linux용 인텔 C++ 컴파일러 7.1
올해 초에 출시된 또 다른 컴파일러인 Linux용 Intel C++ Compiler 7.1을 사용하면 Intel Itanium, Intel Itanium 2, Intel Pentium 4, Intel Pentium M 프로세서에 대해 높은 수준의 코드 최적화를 달성할 수 있습니다. 소스 코드 및 개체 모듈에서 GNU C 컴파일러와 호환되므로 추가 비용 없이 GNU C를 사용하여 생성된 응용 프로그램을 마이그레이션할 수 있습니다. 인텔 C++ 컴파일러는 C++ ABI(Linux 커널에 추가된 기능으로 다음을 실행할 수 있음)를 지원합니다. 아래에 리눅스 제어초기 SCO 운영 체제와 같은 다른 플랫폼용으로 컴파일된 코드, 초기 버전 Sun Solaris 등) 이는 바이너리 코드 수준에서 gcc 3.2 컴파일러와의 완전한 호환성을 의미합니다. 마지막으로, Linux용 인텔 C++ 컴파일러 7.1을 사용하면 소스 코드를 약간만 변경하여 Linux 커널을 다시 컴파일할 수도 있습니다.
Linux용 인텔 포트란 컴파일러 7.1
Linux용 인텔 포트란 컴파일러 7.1을 사용하면 인텔 아이테니엄, 인텔 아이테니엄 2, 인텔 펜티엄 4, 인텔 펜티엄 M 프로세서에 최적화된 코드를 생성할 수 있습니다. 이 컴파일러는 소스 코드 수준에서 Compaq Visual Fortran 6.6 컴파일러와 완벽하게 호환되므로 다음을 수행할 수 있습니다. Compaq Visual Fortran을 사용하여 만든 응용 프로그램을 다시 컴파일하여 성능을 향상시킵니다.
또한 지정된 컴파일러는 emacs 편집기, gdb 디버거 및 make 애플리케이션 빌드 유틸리티와 같이 개발자가 사용하는 유틸리티와 호환됩니다.
이 컴파일러의 Windows 버전과 마찬가지로 Linux용 인텔 포트란 컴파일러 7.1은 ISO Fortran 95 표준과 완벽하게 호환되며 C와 Fortran의 두 가지 언어로 된 코드가 포함된 응용 프로그램의 생성 및 디버깅을 지원합니다.
나열된 인텔 컴파일러 생성에 중요한 기여를 한 것은 니즈니노브고로드에 있는 인텔 러시아 소프트웨어 개발 센터의 전문가들이 수행했다는 점을 특히 강조해야 합니다. 더 자세한 정보인텔 컴파일러에 대한 정보는 인텔 웹사이트 www.intel.com/software/products/에서 확인할 수 있습니다.
이 기사의 두 번째 부분은 모바일 장치용 응용 프로그램을 만드는 Intel 컴파일러에 대해 다룹니다.
당신은 노예가 아닙니다!
엘리트 자녀를 위한 비공개 교육 과정: "세계의 진정한 배열"
http://noslave.org
Wikipedia의 자료 - 무료 백과사전
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. | ||||||||||||||||||||||||||||||||||||
유형 | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
작가 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
개발자 | ||||||||||||||||||||||||||||||||||||
개발자 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
에 작성 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
상호 작용 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
운영 체제 | ||||||||||||||||||||||||||||||||||||
인터페이스 언어 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
초판 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
하드웨어 플랫폼 | ||||||||||||||||||||||||||||||||||||
최신 버전 | ||||||||||||||||||||||||||||||||||||
출시 후보 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
베타 버전 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
알파 버전 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
테스트 버전 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
읽을 수 있는 파일 형식 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
생성된 파일 형식 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
상태 |
170행의 모듈:Wikidata에 Lua 오류가 있습니다: "wikibase" 필드(nil 값)를 색인화하려고 합니다. |
|||||||||||||||||||||||||||||||||||
특허 |
주요 특징:
컴파일러는 병렬 프로그램 작성을 위한 OpenMP 3.0 표준을 지원합니다. 또한 MPI를 사용하는 클러스터에서 OpenMP에 따라 작성된 응용 프로그램을 실행할 수 있는 Cluster OpenMP라는 OpenMP 수정본이 포함되어 있습니다. 인텔 C++ 컴파일러는 Edison Design Group의 프런트엔드(컴파일된 프로그램을 구문 분석하는 컴파일러의 일부)를 사용합니다. SGI MIPSpro, Comeau C++ 및 Portland Group 컴파일러에서는 동일한 프런트엔드가 사용됩니다. 이 컴파일러는 SPEC CPU 벤치마크를 컴파일하는 데 널리 사용됩니다. 컴파일러가 포함된 인텔 제품 시리즈는 4가지가 있습니다.
Linux 버전 컴파일러의 단점은 일부 프로그램을 컴파일할 때 문제를 일으킬 수 있는 C 언어의 GNU 확장(GCC 컴파일러에서 지원)과 부분적으로 비호환된다는 점입니다.
실험적 옵션다음과 같은 실험용 컴파일러 버전이 게시되었습니다.
기본 플래그
"인텔 C++ 컴파일러" 기사에 대한 리뷰 작성노트또한보십시오연결
Intel C++ 컴파일러의 특성을 설명하는 발췌문그리고 그녀는 마지막으로 백마도사를 만나러 돌아왔다. 결코 잊을 수 없는 남편이자 진정한 친구였다. 그녀는 마음속으로 그를 용서했습니다. 그러나 안타깝게도 그녀는 그에게 막달레나의 용서를 가져다줄 수 없었습니다.... 그래서 보시다시피, "용서"에 관한 위대한 기독교 우화인 이시도라는 순진한 신자들에게 허용하기 위한 유치한 거짓말일 뿐입니다. 무슨 악을 행하든지, 무슨 짓을 하든 결국에는 용서받을 것이라는 사실을 아는 것입니다. 그러나 진정으로 용서받을 가치가 있는 것만 용서할 수 있습니다. 사람은 저지른 모든 악에 대해 대답해야한다는 것을 이해해야합니다... 그리고 신비한 신 앞에서가 아니라 자신 앞에서 잔인하게 고통을 겪도록 강요합니다. 막달레나는 Vladyka를 깊이 존경하고 진심으로 사랑했지만 용서하지 않았습니다. 그녀가 Radomir의 끔찍한 죽음에 대해 우리 모두를 용서하지 못한 것처럼. 결국, 그녀는 누구보다 잘 이해했습니다. 우리는 그를 도울 수도 있었고, 잔인한 죽음에서 그를 구할 수도 있었습니다... 하지만 우리는 원하지 않았습니다. 그녀는 백마도사의 죄가 너무 잔혹하다고 생각하여 그 죄를 한시도 잊지 않고 안고 살아가도록 내버려 두었는데... 그녀는 그에게 쉽게 용서를 주고 싶지 않았습니다. 우리는 그녀를 다시는 보지 못했습니다. 마치 자기 아기를 본 적이 없는 것처럼요. 그녀의 사원 기사 중 한 명인 우리 마법사를 통해 막달레나는 Vladyka에게 우리에게 돌아오라는 요청에 대한 답을 전달했습니다. “해는 같은 날 두 번 뜨지 않습니다... 당신의 세계(Radomir)의 기쁨은 내가 당신에게 돌아오지 않을 것처럼 결코 당신에게 돌아오지 않을 것입니다... 나는 나의 믿음과 진실을 찾았습니다. 그들은 살아 있지만 당신의 것은 죽었습니다... 당신의 아들들을 애도하십시오. 그들은 당신을 사랑했습니다. 나는 살아있는 동안 그들의 죽음을 결코 용서하지 않을 것입니다. 그리고 당신의 죄책감이 당신과 함께 있기를 바랍니다. 아마도 언젠가 그녀는 당신에게 빛과 용서를 가져다 줄 것입니다... 하지만 나에게서는 그렇지 않습니다.” Magus John의 머리는 같은 이유로 메테오라로 옮겨지지 않았습니다. 사원의 기사 중 누구도 우리에게 돌아오고 싶어하지 않았습니다... 우리는 원하지 않았던 다른 많은 사람들을 한 번 이상 잃었기 때문에 그들을 잃었습니다. 우리의 희생자들을 이해하고 받아들이십시오... 누가 당신처럼 행동했는지 – 그들은 우리를 비난하며 떠났습니다.머리가 핑핑 돌았다!.. 목마른 사람처럼 지식에 대한 영원한 갈증을 해소하며 북한이 아낌없이 주는 놀라운 정보의 흐름을 탐욕스럽게 흡수했다... 그리고 나는 더 많은 것을 원했다!.. 나는 모든 것을 알고 싶었다. 끝. 고통과 고난으로 얼룩진 사막에 신선한 물의 숨결이었습니다! 그리고 나는 그것을 충분히 얻을 수 없었습니다 ... – 수천 가지 질문이 있습니다! 그런데 시간이 얼마 남지 않았는데... 노스님 어떡해요.. - 물어보세요, 이시도라!.. 물어보세요, 대답해드리겠습니다... – 말해봐, Sever,이 이야기가 비슷한 사건과 얽혀있는 두 가지 삶의 이야기를 결합하고 한 사람의 삶으로 제시되는 것처럼 보이는 이유는 무엇입니까? 아니면 내가 옳지 않은가? – 당신 말이 정말 맞아요, 이시도라. 앞서 말했듯이, 인류의 거짓 역사를 창조한 “이 세상의 권세들”은 1500년 전에 살았던 유대 선지자 여호수아의 외계 생명을 그리스도의 참된 삶에 “입혔습니다”( 북의 이야기부터). 그리고 그 자신뿐만 아니라 그의 가족, 친척, 친구, 친구 및 추종자들도 마찬가지입니다. 결국, 그것은 선지자 여호수아의 아내, 유대인 마리아였으며 자매 마르다와 형제 나사로, 그의 어머니 마리아 야코베의 자매, 그리고 라도미르와 막달레나 근처에 한 번도 가본 적이 없는 다른 사람들이었습니다. 그들 옆에는 바울, 마태, 베드로, 누가 등 다른 “사도들”이 없었던 것처럼… 1500년 전 프로방스(당시에는 갈리아 횡단이라고 불림), 그리스 도시 마살리아(현재의 마르세유)로 이주한 사람은 선지자 여호수아의 가족이었습니다. 그것은 유럽과 아시아 사이의 “관문”이었고, 모든 “박해받는” 사람들이 박해와 환난을 피하기 위한 가장 쉬운 길이었습니다.
|