2011-02-26 8 views
3

저는 Mathematica로 큰 입력 배열을 처리하고 1024 * 1024 및 81 * 81 * 81보다 크거나 같은 아무것도 처리 할 수없는 것처럼 보입니다. 그게 정상인가요? 그러한 입력 데이터에 대한 계산을 수행 할 수 있어야합니까? 그렇다면 어떻게?Mathematica에서 대용량 데이터 처리

+0

수행하려는 "프로세스"의 종류를 지정할 수 있습니까? –

+1

1024 * 1024 요소의 내보내기 데이터를 가져올 수 있어야합니다. 그리 큰 것은 아닙니다. 더 자세한 정보를 제공 할 수 있습니까? – Simon

+0

1024^2/81^3 = 2 (aprox)입니다. 따라서 귀하의 한계는 일관성이 없습니다. 알 겠어. –

답변

3

나는 무엇을 계산에 따라 달라지는 것 같아요. 수행중인 것은입니다. 매우 겸손한 노트북에서 예를 들어

:

Clear["Global`*"]; 
k = 2000; 
Timing[a = Table[i j + i - j, {i, k}, {j, k}]; 
[email protected]] 

20 초 정도 걸립니다. 1000x1000까지 곱

매트릭스 :

f[n_] := Table[RandomInteger[{1, n}], {n}, {n}]; 
ListLinePlot[ 
Table[{n, [email protected]@(#.#) &@f[n]}, {n, 100, 1000, 100}]] 

enter image description here

그래서, 당신이 계산하는 시도하고있는 무슨에 크게 의존한다.

+0

. 음, 내 프로그램이하는 것은 1/2/3 차원 배열의 각 셀을 평가하고 그 셀에서 계산을 수행하는 것입니다. 이제는 큰 입력을 다루는 것이 중요하지 않습니다. 그러나 계산 속도를 조금 높일 수있는 방법이 있는지 궁금합니다. –

+0

@Ricky 루핑 구조 대신 기능을 사용하고, 컴퓨터에서 병렬 커널을 사용하고, 진정한 몬스터 처리 격자를 사용하는 등의 유용한 기법이 있습니다. 그러나 모든 상황에 유용한 은색 총알은 없습니다. 특정 문제에 대해 더 알려줄 필요가 있습니다. –

+0

@Ricky Robinson은 하나의 요소에 대해 작업 시간을 확인 했습니까? – acl

관련 문제