4
조건부를 기반으로 도메인의 하위 집합을 만들고 싶습니다. 루프를 할 수는 있지만 인라인 if를 사용할 수 있는지 찾고 있습니다. Chapel에서 인라인 IF 배열 생성자를 수행하는 방법은 무엇입니까?
그냥 다시 만드는var d = {1..8};
var e = [0.875, 0.625, 0.625, 1.0, 0.625, 0.875, 0.625, 0.625];
var p = 0.7;
var vs = for i in d do i;
writeln(" vs: ", vs);
처럼 d
보이는 배열을하지만, 나는 d
곳 e[d] < p
vs
에 압축을. 거기에 같은 접근이 있습니까?
vs = [i in d where e[i] < p]
writeln(vs); // {2,3,5,7,8}
사랑스러운 조각, 벤 당신이 사용할 수있는 도메인을 원한다면, 당신은 연관 도메인을 사용합니다. ** 하나의 로케일 (로컬 호스트)에로드 된 약 10TB 데이터 세트 (64 비트 IEEE 값)에 대해 연관 도메인을 처리하기 위해 그러한 "내장 된 반복기"**의 실제 비용은 얼마가 될 것으로 예상됩니까? 8 노드 분산 처리 클러스터로 마이그레이션 할 수 있습니까? – user3666197
'embedded iterator'가 연관 도메인에 인덱스를 추가하는 직렬 루프가된다는 것을 명확히 한 예제를 추가했습니다. 연관 도메인은 다른 언어의 '설정'과 매우 유사하며, 이는 색인을 추가하는 데 드는 비용에 대한 좋은 아이디어를 제공합니다. 이것은 병렬 안전을 끄면 더 빠를 수 있습니다 : var vs : domain (int, parSafe = false); – benharsh