«performance» 태그된 질문

알고리즘, 데이터 구조, 언어 및 라이브러리의 실행 속도 및 메모리 사용에 대한 질문

10
내 코드의 직렬 성능을 향상시키기위한 좋은 전략은 무엇입니까?
나는 계산 과학 분야에서 일하고 있으며 결과적으로 많은 코드의 과학적 처리량을 높이고 이러한 코드의 효율성을 이해하려고 노력하는 데 사소한 시간을 소비합니다. 작업중인 소프트웨어의 성능과 가독성 / 재사용 성 / 유지 보수성 간의 균형을 평가하고 성능을 발휘할시기라고 결정했다고 가정 해 보겠습니다. 또한 플롭 / s 및 메모리 대역폭 측면에서 문제에 대한 …

7
플롭 카운팅에 의한 알고리즘 분석은 더 이상 사용되지 않습니까?
수치 분석 과정에서 문제의 크기에 따라 필요한 부동 소수점 연산 (플롭) 수를 계산하여 알고리즘의 효율성을 분석하는 방법을 배웠습니다. 예를 들어, Numerical Linear Algebra에 관한 Trefethen & Bau의 텍스트에는 플롭 카운트에 대한 3D 모양의 그림도 있습니다. 캐시에없는 것을 가져 오기위한 메모리 대기 시간이 플롭 비용보다 훨씬 크기 때문에 "플롭이 비어있다"고 말하는 …

4
포트란을 빨리 만드는 이유는 무엇입니까?
포트란은 수치 프로그래밍에서 특별한 위치를 차지하고 있습니다. 확실히 다른 언어로 빠르고 좋은 소프트웨어를 만들 수는 있지만, 포트란은 그 나이에도 불구하고 계속 잘 수행합니다. 또한 포트란에서 빠른 프로그램을 만드는 것이 더 쉽습니다. C ++로 빠른 프로그램을 만들었지 만 포인터 앨리어싱과 같은 것에 더주의해야합니다. 따라서 이에 대한 이유와 매우 기술적 인 이유가 …

4
MATLAB 백 슬래시 연산자 는 제곱 행렬의 를 어떻게 해결 합니까?
내 코드 중 일부를 "스톡"MATLAB 코드와 비교했습니다. 나는 결과에 놀랐다. 샘플 코드를 실행했습니다 (Sparse Matrix) n = 5000; a = diag(rand(n,1)); b = rand(n,1); disp('For a\b'); tic;a\b;toc; disp('For LU'); tic;LULU;toc; disp('For Conj Grad'); tic;conjgrad(a,b,1e-8);toc; disp('Inv(A)*B'); tic;inv(a)*b;toc; 결과 : For a\b Elapsed time is 0.052838 seconds. For LU Elapsed time is …


4
파이썬으로 작성된 코드의 속도를 높이기 위해 어떤 도구 나 접근법을 사용할 수 있습니까?
배경 : MATLAB에서 Python으로 Krylov 하위 공간 방법을 사용하여 행렬 지수 벡터 제품을 계산하는 코드를 이식하고 싶을 수도 있습니다. (특히, 이 백서에 설명 된 알고리즘을 사용하는 Jitse Niesen의 expmvp 함수 ) 그러나 컴파일 된 라이브러리에서 파생 된 모듈에서 함수를 많이 사용하지 않는 한 (즉, 원시 Python 만 사용하고 많은 내장 …

4
컴퓨터 과학에서 C ++ 표현식 템플릿을 언제 사용해야합니까? 언제 사용하지 않아야합니까?
C ++로 과학 코드를 작성한다고 가정 해 봅시다. 최근 동료와의 토론에서 표현 템플릿은 정말 나쁜 것일 수 있으며 특정 버전의 gcc에서만 소프트웨어를 컴파일 할 수 있다고 주장했습니다. 아마도이 문제는 이 몰락 패러디의 자막에서 암시 된 것처럼 몇 가지 과학적 코드에 영향을 미쳤습니다 . (이것들은 내가 아는 유일한 예이므로 링크입니다.) 그러나 …

1
다차원 데이터를 보간하기위한 우선적이고 효율적인 방법은 무엇입니까?
다차원 데이터를 보간하기위한 우선적이고 효율적인 방법은 무엇입니까? 내가 걱정하는 것 : 시공을위한 성능 및 메모리, 단일 / 배치 평가 1에서 6까지의 치수 취급 선형 또는 고차 그라디언트를 얻는 기능 (선형이 아닌 경우) 일반 대 흩어진 격자 보간 함수로 사용, 예. 근을 찾거나 최소화하기 위해 외삽 기능 이것에 대한 효율적인 오픈 …

3
인텔 포트란 컴파일러 : 컴파일시 최적화 팁
실험실에서 개인 경험을 시작하겠습니다. ifort 9 일과 10 일로 돌아가서, 우리는 최적화에 매우 적극적이었고, -O3 및 프로세서 특정 플래그 (예 : -xW -xSSE4.2)로 컴파일했습니다. 그러나 ifort 11부터는 다음과 같은 사실을 발견하기 시작했습니다. 1. 결과의 일부 불일치 (시맨틱이 유지되지 않았기 때문에) 2. -O2에 비해 더 작은 이득. 현재는 보통 -O2와 -xhost로 …

1
Python / Numpy 배열 연산의 성능은 배열 차원이 증가함에 따라 어떻게 확장됩니까?
Python / Numpy 배열은 배열 크기가 증가함에 따라 어떻게 확장됩니까? 이것은이 질문에 대한 파이썬 코드를 벤치마킹 할 때 발견 한 행동을 기반으로합니다 : numpy slices를 사용 하여이 복잡한 표현을 표현하는 방법 문제는 주로 배열을 채우는 색인 생성과 관련이 있습니다. 파이썬 루프에 비해 (아주 좋지 않은) Cython 및 Numpy 버전을 사용하는 …

3
사전 계산 후 2 차 시간에 대각선 + 고정 대칭 선형 시스템을 해결할 수 있습니까?
이 생길는 O(n3+n2k)O(n3+n2k)O(n^3+n^2 k) 해결 방법 kkk 형태의 시스템 선형 (Di+A)xi=bi(Di+A)xi=bi(D_i + A) x_i = b_i 곳 인 고정 SPD 행렬과 D 나 포지티브 대각 행렬이다?AAADiDiD_i 예를 들어, 각 DiDiD_i 가 스칼라이면 의 SVD를 계산하면 충분합니다 AAA. 그러나 이것은 일반적인 DDD 의 경우, commutativity가 없기 때문에 분류됩니다. 업데이트 : 지금까지 …

4
휴대용 멀티 코어 / NUMA 메모리 할당 / 초기화 모범 사례
공유 메모리 환경 (예 : OpenMP, Pthreads 또는 TBB를 통해 스레드)에서 메모리 대역폭 제한 계산을 수행 할 때 각 스레드가 대부분의 메모리에 액세스 하도록 메모리가 실제 메모리에 올바르게 분산되도록하는 방법에는 딜레마가 있습니다. "로컬"메모리 버스. 인터페이스는 이식성이 없지만 대부분의 운영 체제에는 스레드 선호도를 설정하는 방법이 있습니다 (예 : pthread_setaffinity_np()많은 POSIX 시스템, …

6
C ++ 템플릿을 사용하는 일반 및 메타 프로그래밍은 어느 정도까지 컴퓨팅 과학에 유용합니까?
C ++ 언어는 템플릿을 통한 일반적인 프로그래밍 및 메타 프로그래밍 을 제공합니다 . 이러한 기술은 많은 대규모 과학 컴퓨팅 패키지 (예 : MPQC , LAMMPS , CGAL , Trilinos )에 적용되었습니다. 그러나 전체 개발 시간과 동일하거나 적절한 효율성에 대한 유용성 측면에서 C 또는 Fortran과 같은 비 제네릭, 비 메타 언어를 …

2
함수에 대한 합리적인 근사치의 오픈 소스 구현
함수에 대한 합리적인 근사치의 일부 오픈 소스 구현 (Python, C, C ++, Fortran이 좋습니다)을 찾고 있습니다. 기사에 따른 것 [1]. 나는 함수를 제공하고 주어진 간격에서의 근사치와 같은 진폭으로 오차가 진동하고 최적의 근사치 또는 그에 가까운 두 개의 다항식을 돌려줍니다. 내가 찾은 것은 다음과 같습니다. chebfun이 그렇게 할 수있는 것처럼 보이지만 …

3
반복 방법 비교 : 반복 횟수와 CPU 시간
임의의 정방 행렬을 반전시키는 두 가지 반복 방법을 비교하고 있습니다. 행렬은 임의적이기 때문에 모든 테스트 사례는 다른 반복 횟수와 다른 경과 시간을 모두 사용합니다. 내 질문은 평균 CPU 시간 외에도 두 방법 모두 방법을 비교하는 데 유용한 정보로 얻은 반복 평균 값입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.