나는 julia와 그 실행에 관한 많은 기사를 읽었다. 하지만 어디서, 줄리아 팀이 매트릭스 작업을 위해 주요 열을 사용하기로 결정한 이유에 대한 단서를 찾을 수 있습니다. 그것은 행렬 주요 또는 무언가에 맞는 행렬에 대한 조작 방법 때문입니다.Julia가 major 열을 사용하는 이유는 무엇입니까? 그것은 빠르다
사전 감사합니다.
나는 julia와 그 실행에 관한 많은 기사를 읽었다. 하지만 어디서, 줄리아 팀이 매트릭스 작업을 위해 주요 열을 사용하기로 결정한 이유에 대한 단서를 찾을 수 있습니다. 그것은 행렬 주요 또는 무언가에 맞는 행렬에 대한 조작 방법 때문입니다.Julia가 major 열을 사용하는 이유는 무엇입니까? 그것은 빠르다
사전 감사합니다.
". 줄리아 다차원 어레이 열 우선 순서에 저장되어있는 이러한 배열은 한번에 하나의 열을 적층하는 것을 의미 이것은 VEC 함수 또는 구문 사용하여 확인 될 수있다.이 :] ..."
"배열을 정렬하는이 규칙은 Fortran, Matlab 및 R과 같은 많은 언어에서 일반적으로 사용됩니다 (몇 가지 예를 들면). 열 - 주 순서는 C 및 Python에서 채택한 행 우선 순서입니다 (numpy) 다른 언어들 중에서. "
예와 성능 차이의 논의https://docs.julialang.org/en/latest/manual/performance-tips/
링크에서 : "배열은 메모리에 연속적으로 저장되어 캐싱으로 인해 CPU 벡터화와 메모리 액세스가 줄어 듭니다. 위와 같은 이유로 열 우선 순서로 배열에 액세스하는 것이 좋습니다. " –
이유는 DNA의 나선형 이런 식으로 다른되지는 무엇입니까? 결정은 약간의 교환 대가를 치고있는 약간의 역사의 대칭 때문에 대부분이다. –
나는 정말로 DNA에 관해 모른다. 하지만 성능면에서 C와 다소 비슷하게 작동합니다. 그렇기 때문에 그들이 메이저가 아닌 칼럼 메이저를 선택한 이유가있을 것 같았습니까? –
대부분의 계산은 모든 변수를 대체하여 다시 작성할 수 있습니다. 이렇게하면 행이 열로 바뀝니다. 선택한 순서에 따라 한 쪽 벡터의 곱셈이 다른 쪽 벡터보다 빠르게되며 선택한 후에 알고리즘의 나머지 계산에 선택 사항을 전파해야합니다. 특히 'w * A'를 곱하면 'A * v'보다 느립니다. 그래서 대답이 있습니다 : 사람들은'A * v'를 선호합니다 –