Chapel

소프트웨어 스크린 샷:
Chapel
소프트웨어 정보:
버전: 1.3.0 Pre-Alpha
업로드 날짜: 11 May 15
개발자: Cray Inc.
라이센스: 무료
인기: 12

Rating: nan/5 (Total Votes: 0)

채플은 DARPA 주도 높은 생산성 컴퓨팅 시스템 프로그램 (HPCS)의 일부로 크레이 Inc.에서 개발되고있는 새로운 병렬 프로그래밍 언어입니다. 플 또한 상품 클러스터 또는 데스크탑 멀티 코어 시스템에서 사용될 수있는 휴대용 병렬 프로그래밍 모델로서의 동안 하이 엔드 컴퓨터 사용자의 생산성을 향상 시키도록 설계된다. 채플 일치 또는 MPI와 같은 현재의 프로그래밍 모델의 성능과 휴대 성을 상회하면서 크게 대규모 병렬 컴퓨터의 프로그래밍을 개선하기 위해 노력하고 있습니다.
. 예배당의 응용 프로그램은 데이터 병렬 처리, 작업 병렬 처리, 동시성, 중첩 된 병렬 & NBSP에 대한 높은 수준의 추상화를 통해 멀티 스레드 실행 모델을 지원 채플의 로케일 유형은 사용자가 지정한 순서대로 목표 아키텍처에서 데이터 및 작업의 배치에 대한 이유를 할 수 있습니다 지역에 대한 튜닝. 채플 자연스러운 방식으로 발현되는 분산 데이터 구조에서 동작을 허용하는, 사용자 정의 된 구현과 글로벌 뷰 데이터 집계를 지원한다. 많은 이전보다 높은 수준의 병렬 언어는 대조적으로, 채플은 처음에 매우 추상적 인 코드를 작성하는 사용자를 허용, 다중 해상도 철학을 중심으로 설계하고 자신의 요구에 필요할 경우가 기계에 가까운 있습니다 때까지 점진적으로 자세한 내용을 추가한다. 채플은 일반적인 프로그래밍을위한 객체 지향 설계, 형식 유추 및 기능을 통해 코드 재사용 및 신속한 프로토 타입을 지원합니다.
채플은 첫 번째 원칙에서보다는 기존 언어를 확장하여 설계되었다. 그것은 C, C ++, 포트란, 자바, 펄, matlab에, 그리고 다른 인기있는 언어의 사용자에 대해 쉽게 배울 수 있도록 설계 필수적 블록 구조의 언어이다. / 크레이 XMT 및 무역, 예배당 이전의 많은 언어의 개념과 구문을 기반으로하지만, 그 병렬 기능은 가장 직접적으로 ZPL, 고성능 포트란 (HPF) 및 크레이 MTA 및 무역에 의해 영향을 받는다; C와 포트란의 확장

이 릴리스의 새로운 기능 : 있습니다.

하이라이트 (자세한 내용은 아래 참조)
분할 '데프'(반복자에 대한) (절차) '시저'와 'ITER'로 키워드
( '$ CHPL_HOME / UTIL / 변환 - 인증 된 정의 --help'를 기존의 코드를 업데이트 도움말을 참조)
추가 '복제'분배 개선 '블록 순환'유통
(참조 & quot; 표준 배포판 & quot을, 사양 및 예 / 프라이머 / distributions.chpl에서)
나노 ++ (BSC) 및 Qthreads에 대한 추가 단일 로케일 작업 층 (디아)
(문서 / README.tasks 참조)
범위의 의미 및 구현의 주요 재 작업
(참조 & quot; 시맨틱 변경 / 채플 언어 하 '변경, 아래의 세부 사항에 대한)
휘발성 유형에 대한 초기 지원 : BOOL, INT, UINT, 진짜, IMAG
(/ README.volatile을 문서 / 기술 정보 참조)
통근 consts 및 클래스에 대한 지원 (포인터 - 투 - 구조체)
(문서 / 기술 정보 / README.extern 참조)
크레이 XMT에 데이터 병렬 처리에 대한 향상된 지원
예 / 디렉토리에있는 샘플 코드에 광범위한 개선
(아래 '예제 코드'및 예 / README를 참조)
새로운 예 / 디렉토리에 사양에서 대부분의 코드 예제 추가
(예를 참조하십시오 / 스펙 / *)
사용자 정의 도메인 맵 인터페이스를 설명하는 기술 노트를 추가
(/ README.dsi을 문서 / 기술 정보 참조)
언어 사양에 광범위한 업데이트
(아래의 '문서'참조)
런타임 태스킹 및 통신 층에 대한 몇 가지 개선
(참조 & quot; 런타임 라이브러리 변경 & quot; 아래)
구문 / 명명 변경
분할 '데프'(반복자에 대한) (절차) '시저'와 'ITER'로 키워드
( '$ CHPL_HOME / UTIL / 변환 - 인증 된 정의 --help'를 기존의 코드를 업데이트 도움말을 참조)
이름이 '연산'영역 / '직사각형'도메인 / 배열에 배열
형태의 소수점 리터럴 부동에 대한 지원을 추가 '1.E을 ...'
(이전에는 '1E ...'와 '1.0E ...'지원되었습니다)
시맨틱 변경 / 채플 언어 변경
범위를 몇 가지 개선 사항 (참조 언어 사양에 장을 '범위') :
정렬 모듈을 나타내도록 정렬의 개념을 추가 | 스트라이드 |
/ 쿼리 정렬을 지정하는 범위에 '정렬'연산자 및 쿼리를 추가
(예를 들어, =된다 '1..10이 정렬하여 3' ''2, 5, 8 '이 5 == == 8 보낸 개조 3)
그들이 생성 정수 시퀀스의 관점에서 범위에 정의 ==
정의 식별자 (R1, R2)은 R1 및 R2가 의미 적으로 동일한 지 대답
K +에 대한 '# 1 K'를 정의; 0 의미 바와 같이, & quot 범위의 끝에서 카운트;
alignedHigh '방법은 범위를', alignedLow ''마지막 ','첫 번째 '추가
(예를 들어, '-2 의해 1..10'= 하였다 == 제 10, 마지막 == 2 alignedLow = 2 alignedHigh = 10)
새로운 범위 쿼리 다양한 기능에 대한 지원을 추가
(예 alignLow () hasFirst () hasLowBound () isAligned () boundsCheck () ...)
휘발성 BOOL, INT, UINT, 실제 및 IMAG 유형에 대한 추가 지원
(/ README.volatile을 문서 / 기술 정보 참조)
파일 형식으로 파일의 마지막에 추가 검사
(예를 들어, '동안! infile.eof ...')
'수율'로 반복자에 '반환'을 치료 제거 지원
(;를 'ITER foo는 () {수율 X; 반환;}'예를 들어, 변화 'ITER foo는 () {반환 X}')
첫 번째 '없이 참조 모듈 지원을 추가 use' - 보내고 그들을
(예를 들어, 모듈 (M1) {var에 X ...} 모듈 (M2) {... M1.x는 ...} 이제 법적으로)
로케일 형식에 callStackSize 쿼리를 추가
(예를 들면, 'here.callStackSize'은 현재 로케일에 호출 스택의 크기를 반환)
열거 형 선언의 끝에서 이전에 필요한 세미콜론을 제거
(; 이전에 필요한 예를 들어, '열거 색상 {, 파란색, 녹색, 빨간색은}'이제 법적 ';')
열거 목록의 마지막에 하나의 후행 쉼표에 대한 지원을 추가
(예를 들면, '열거 색상 {빨간색, 파란색, 녹색,}'이제 법적으로)
사각형 영역에 +/- 사업자 제거 지원; ) (번역 사용
새로 구현 된 기능
구현 == /! = 직사각형, 연관에 대한, 스파 스 도메인
표준 배포판
중복 된 데이터를 저장하는 제 1 드래프트 "복제 된"분포를 첨가
(예 / 프라이머 / distributions.chpl 참조)
개선 올바르게 HPCC PTRANS와 HPL을 구현하기에 충분한, '블록주기'
(; 예 / 프라이머 / distributions.chpl 예 / HPCC / ptrans.chpl, hpl.chpl 참조)
도메인 / 배열 사이의 리더 반복자의 사양에 중복 제거
표준 모듈
Math.chpl 모듈에 추가 무한대 NAN 상수
(아래 & quot '수학'참조; 표준 모듈 & quot; 언어 사양에를)
isinf ()와 isfinite () Math.chpl 모듈 테스트 루틴을 추가
(아래 & quot '수학'참조; 표준 모듈 & quot; 언어 사양에를)
GMP.chpl 모듈에 반 다스 더 루틴을 추가
설명서
사용자 정의 도메인 맵 인터페이스를 설명하는 새로운 기술 정보를 추가
(/ README.dsi을 문서 / 기술 정보 참조)
언어 사양에 많은 개선을 이루어
도메인 장에 주요 변화는 선명도 / 정확성을 개선하기 위해
기록 및 클래스 챕터의 개선 및 통합 구조
도메인지도 장에 주요 변화는 선명도 / 정확성을 개선하기 위해
예 / 스펙 / 프로그램에 대한 상호 참조를 제공하기 위해 예제 코드를 명명
병렬 루프에서 계속 / 라벨 / 휴식의 적법성을 명확히
[LN] / [LN] 쓰기 읽기의 설명을 업데이트
주문 파일 필드에서 일부 문제를 해결
라텍스 '책'으로 사양을 포맷
오타 / 실수의 여러 작은 수정
개선 정의 / 몇 가지 용어에 대한 설명
locale.name의 추가 문서
그리고 다른 많은 변화 ...
업데이트 빠른 참조 문서 및 DEF 활있다을 포함하도록, PROC / ITER 변경, 영업 이익을 맞 춥니 다.
재 작성 / 재구성 README.extern는 설명을 명확히하고 가져다 최신
'지역'문을 설명하는 README를 추가 (문서 / 기술 정보 / README.local)
휘발성 유형을 설명하는 README를 추가 (문서 / 기술 정보 / README.volatile)
업데이트 README.comm 진단 빠른 포크 통계를 언급
업데이트 된 다양한 README 파일
예제 코드
언어 사양에서 대부분의 코드 예제를 배치했다. 새로운 스펙 / 하위 디렉토리
프라이머 / 디렉토리를 개선 :
절차를 사용하기위한 새로운 프라이머를 추가 (프라이머 / procedures.chpl)
도메인에 대한 기본 프라이머를 추가 (프라이머 / domains.chpl)
로케일 locales.chpl 프리 머 이름을 변경하고이를 개선
분포 프라이머를 개선하고 추가 블록 순환 및 복제 사용
범위 프라이머를 업데이트 (프라이머 / range.chpl)
반복자 프라이머를 개선 (프라이머 / iterators.chpl)
감소 프라이머를 개선 (프라이머 / reductions.chpl)
타이머 프라이머 getCurrentTime ()를 추가 (프라이머 / timers.chpl)
변수 프라이머에 유형 별칭과 구성 유형의 추가 설명
(프라이머 / variables.chpl 참조)
개선 HPCC / 벤치 마크 디렉토리
HPCC / 디렉토리에 HPCC PTRANS의 추가 첫 번째 버전 (ptrans.chpl)
HPCC / 디렉토리에 HPCC의 HPL의 추가 청소기 버전 (hpl.chpl)
변형 / 예에 하위 디렉토리 / HPCC는 다른 접근법을 전시에 추가
추가 스트림 promoted.chpl 글로벌 STREAM 화음에서 승진의 사용을 표시합니다
추가 RA-cleanloop.chpl 청소기 (그러나 현재 느린) RA 커널을 표시합니다
개선 최상위 예 :
이름이 기존 & quot; 안녕하세요, 세계 & quot; 예로는 논리적 읽기 순서를 제안
(예 / 안녕하세요 * .chpl 참조)
추가 데이터 병렬 및 분산 된 데이터 안녕하세요, 세계 예제를 평행
(예 / hello3-datapar.chpl, 예 / hello4-datapar-dist.chpl 참조)
주석을 추가 한 다양한 안녕하세요, 세계 예 (예 / 안녕하세요 * .chpl)
현재 언어의 의미에 모든 예제를 업데이트
사용 '시저'/ 'ITER'보다는 'DEF'
업데이트는 새로운 범위의 의미를 반영하기 위해
플랫폼 별주의 사항
크레이 XT / 크레이 XE를 들어, aprun 및 PBS-aprun 발사기 개선
(참조 & quot; 노트 & quot 실행기 별을, 아래)
크레이 XMT를 들어, 범위에서 병렬 루프에 대한 지원을 추가
크레이 XMT를 들어, 루프 변수 FORALL to noalias의 프라 그마의 생성을 추가
문서 및 특별한 실행을 포함하여 BSC의 마레 노스 트럼에 대한 지원을 추가
(/ README.marenostrum을 문서 / 플랫폼 참조)
실행기 별 노트
기능을 --help하는 실행 프로그램 별 옵션을 추가
발사대를 통해 종료 상태 코드의 개선 전파
변경된 발사기는 간부 기반 (오히려 시스템 기반보다) 명령을 지원합니다
만든 발사기 임시 파일을 제거하기 위해 '링크 해제'가 아닌 시스템 ( 'RM')를 사용
BSC의 마레 노스 트럼 '의 실행 프로그램을 추가
임시 파일의 감소 수는 '시스템'명령의 출력을 캡처하는 데 사용
aprun 런처 개선 :
노드에 승 / CPU 할당을 지정하는 --cc 플래그를 추가
자동 모드에서 실행 프로그램을 실행하는 데 -q 플래그를 추가
CHPL_LAUNCHER_DEBUG 통해 추가 디버그 기능은 주위 TMP 파일을 보관하기
런처 개선 PBS는-aprun :
노드에 승 / CPU 할당을 지정하는 --cc 플래그를 추가
CHPL_LAUNCHER_DEBUG 통해 추가 디버그 기능은 주위 TMP 파일을 보관
청소 출력은 일부 외부 인쇄 없애
만든 런처는 우리의 테스트 시스템을 지원
봉투에 대한 대안으로 런처로 --walltime과 --queue 플래그를 추가했다. 바르.
컴파일러 변경
만든 컴​​파일러 인쇄 '진실'/ 타입 서명에 밖으로 '거짓'이 아닌 1/0
구성 PARAM 'noRefCount은'참조 카운트를 사용하지 않도록하기 위해 추가 (메모리가 누수 될 수 있습니다)
컴파일러 플래그
나쁜 전화에지도 것을 보여 --print-호출 스택-에 오류 플래그를 추가
코드 생성 및 연결 단계를 건너 --no-CODEGEN 플래그를 추가
상호 변경
클래스 & quot; 통근 C & quot에 대한 지원을 추가; (포인터 - 투 - 구조체 타입)
통근 consts (README.extern 참조)에 대한 추가 지원
오류 메시지 개선
고아 경고가 문을 선언 모듈의 외부 '사용'첨가
(; '{사용 (M1);} 모듈 (M2)'을 일반적으로해야한다 예를 들어, '} 모듈 (M2) {(M1)를 사용')
포맷 이루어지는 파스시 에러 메시지는 표준 ': LINENO 파일 이름'을 사용
기본 방법에 클래스 이름을 참조하는 에러 메시지를 생성 한
(예를 들면, '클래스 C {데프 CM은 () {...}}'이제 오류 메시지를 생성합니다)
(구 의미에 대한) 버그 수정 / 새로운 의미를 확인
실행 시간 명령 행 플래그를 사용하여 설정되는 설정 유형을 방지
아니오 필드 조합을 처리하는 컴파일러의 능력을 고정
값의 범위 빈 / 하위 범위를 처리하기 위해 minloc / maxloc 감소를 고정
파일 생성자에 '경로'인수가 무시되는 버그를 수정
만든 빈 노동 조합이 제대로 작동
유통 / 병렬화에 대한 범위를 청크에 오버 플로우 문제를 해결
빈 통근 레코드 유형에 대한 지원을 포함하는 버그를 수정
레코드를 반환 통근 기능을 포함하는 버그를 수정
외부 기록을 복사 관련 버그를 수정
연관 / 스파 스 도메인에 + 연산자의 고정 구현
'복수를 포함하는 파일 이름 기반의 모듈 이름에 관련된 버그가 수정되었습니다.의
불규칙한 도메인에 / 외부 / 내부 확장을위한 추가 오류 메시지
지정된 반환 형식과 생성자 / 소멸자에 대한 오류를 추가
최적화 '에 빨리'에 관한 버그의 한 쌍의 고정
일반 필드를 지정하지 않고 클래스를 구성에 대한 검사를 추가
포장 변경
GNU 소스 - 하이라이트 추가 구문 형광펜 코드
(등 / 소스 하이라이트 / README를 참조)
버전 22.x에 대한 지원을 착색 향상 이맥스
(등 / 이맥스 / README를 참조)
정력 구문 색상에 대한 업데이트는 새로운 '시저'를 반영하기 위해 / 'ITER'키워드
(등 / 정력 / README를 참조)
ITER '/'PROC '에'DEF 기존 코드 '사용'로 변환하기위한 스크립트를 추가
(CHPL_HOME / UTIL / 변환 - 인증 된 정의 $ 참조)
당분간 제거 multirealm 예제 및 설명서
타사 소프트웨어의 변경
버전 1.16.1에 GASNet 업데이트
BSC의 나노 ++ 및 Sandia의 Qthreads의 추가 사본
(제 3 자 / README를 참조)
상대에 절대 경로를 변경 GASNet위한 단계를 설치 후 만든
불안정으로 인해 당분간 제거 PVM
런타임 라이브러리 변경
나노 ++ (BSC) 및 Qthreads에 대한 추가 단일 로케일 작업 층 (디아)
런타임 태스킹 층에 몇 가지 개선 사항 :
) (태스킹 층 호출 chpl_main있는을위한 새로운 인터페이스 추가
변경된 태스킹 초기화 기능은 maxThreadsPerLocale / callStackSize 인자들을 취할
태스킹 층 인터페이스 태스크 수율 기능을 추가
동기화를 사용하지 않도록하는 개선 된 런타임 코드는 태스킹을 초기화하기 전에 바르
인터페이스를 태스킹의 매크로화된 형태로 제거; 대신에 표준 이름을 사용하여
모든 작업 층 루틴의 통일 된 이름은 () _ * (* _ chpl_sync)과 chpl_task하기
하나의 변수 인터페이스를 구현하는 기준을 삭제
스레딩의 pthreads에 FIFO의 태스킹 층에서 스레드의 이동 종료
pthread에 스레딩 층에 동기화 변수의 간단한 구현
스레딩을 pthread에하는 FIFO 태스킹에서 스레드 개수에 대한 책임을 이동
런타임 통신 층에 여러 개선 사항 :
길이 / 형태 인수를 지원하는 통신 인터페이스를 재구성
비 차단하기위한 인터페이스를 추가는 통신하기위한 동작을 얻을. 인터페이스
통합 모든 원격 GET 작업 CHPL_COMM_GET () 매크로를 사용하는
리팩토링 / 변경된 통신 인터페이스 헤더
테스트 시스템
크게 성능 테스트 및 그래프 기능 향상
(문서에 대한 start_test의 전면에 코멘트를 참조)
자체 후에 청소를 위해 테스트 시스템의 지원 개선
표준 입력의 간접를 사용하지 않도록하는 기능이 추가
시스템 전체 prediff 옵션을 제공 할 수있는 옵션을 추가
실행의 기본 시간 초과 기능보다는 파이썬을 사용하는 추가 기능
테스트 시스템은 밖으로 그 시간 테스트를 죽이는 방법 개선
.preexec 파일이있는 경우에만 작동하는 버그가 수정 '.' 경로에 있었다
내부의
AST 노드를 찾을 수 개발자가 작성합니다 --break-에-ID 컴파일러 플래그를 추가
UTIL / 디렉토리 내용의 개선 조직
SVN 기반 사용자에게 표시 버전 번호가 계산되는 방법을 변경 /
task- / 스레드 특정 모듈의 코드에 대한 추가 지원
각 패스 사이에 할당 된 AST 수를 인쇄 할 수있는 기능을 추가
새로운 GDB 별칭이 --gdb 컴파일러에 추가 : 'LOC'는 AST 노드의 위치를​​ 인쇄
오류 사례를 방지하기 프라 그마 / 플래그 크게 향상 구현
컴파일러에서 불필요한 문자열 비교의 제거 여러 인스턴스
전 처리기 기호로 CHPL_TASKS과 CHPL_THREADS의 제거 오류가 발생하기 쉬운 사용
(릴리스에 포함되지 않음) 개발자를위한 추가 bestPractices 문서
'='과의 변경된 내부 munging는 '==' '어사'를 각각 'EQUALS'
오류에 대한 AST ID를 인쇄 할 --print-ID-에 오류 개발자 플래그를 추가
C ++ 프로토 타입이 판정의 엄격함을 향상
SVN 트리에 외부 기고자 계약을 추가 (안 릴리스)
컴파일러에 의해 사용되는 내부 형태의 개념이 아니라, 사용자 추가

유사한 소프트웨어

LavaPE
LavaPE

20 Feb 15

Smake
Smake

20 Feb 15

ClamAv#
ClamAv#

3 Jun 15

Lush
Lush

11 May 15

코멘트 Chapel

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!