업계가 처리 코어 가 기하 급수적으로 증가 하는 추세에있는 것으로 나타났습니다 . 가장 큰 수퍼 컴퓨터는 모두 노드 간 통신에 MPI를 사용하지만 단일 MPI 프로세스를 각 코어에 자동으로 매핑하는 가장 간단한 (그러나 가장 효율적인 것은 아니지만) 노드 간 병렬 처리에 대한 명확한 추세는 보이지 않습니다. 컴파일러, OpenMP, pthreads, CUDA, Cilk …
프로그래머의 관점에서 CUDA와 OpenCL은 2013 년 말 기준으로 어떻게 비교됩니까? 우리 그룹은 GPU 컴퓨팅을 활용하려고합니다. OpenCL 만 지원하고 CUDA는 지원하지 않는 하드웨어를 선택하여 우리 자신을 크게 제한하고 있습니까? 좀 더 구체적으로, 다음 가정이 맞습니까? CUDA에서 가능한 모든 것은 OpenCL에서도 가능합니다 우리가 라이브러리를 사용하지 않는 한, 주어진 작업은 그중 하나에서 수행하기가 …
대한 아마존 EC2 컴퓨팅 클러스터 비용 $ 800 $ (1000)는 삼년의 과정을 통해 물리적 CPU 코어 당 (듀티 사이클에 따라 다름). 우리의 마지막 하드웨어 획득 과정에서, 랩에서 Amazon의 클러스터와 비슷한 48 개의 코어 하드웨어를 코어 당 약 300 달러에 집어 들었습니다. 여기에 뭔가 빠졌습니까? 분자 역학 시뮬레이션과 같은 높은 CPU …
실험실에서 개인 경험을 시작하겠습니다. ifort 9 일과 10 일로 돌아가서, 우리는 최적화에 매우 적극적이었고, -O3 및 프로세서 특정 플래그 (예 : -xW -xSSE4.2)로 컴파일했습니다. 그러나 ifort 11부터는 다음과 같은 사실을 발견하기 시작했습니다. 1. 결과의 일부 불일치 (시맨틱이 유지되지 않았기 때문에) 2. -O2에 비해 더 작은 이득. 현재는 보통 -O2와 -xhost로 …
처음부터 병렬 과학 계산 소프트웨어를 개발하고 싶습니다. 어떤 언어를 시작할지 생각하고 싶습니다. 이 프로그램에는 많은 LU 인수 분해 및 희소 선형 솔버 사용과 함께 데이터를 txt 파일로 읽고 쓰는 작업과 많은 계산을 동시에 수행하는 작업이 포함됩니다. 내가 생각한 후보 솔루션은 OpenMP 또는 공동 배열을 사용하는 Fortran 2003/2008, openmp cilk + …
24 개의 Intel Xeon CPU를 포함하는 노드로 구성된 Ubuntu Linux 클러스터에서 MD (Molecular Dynamics) 코드 GROMACS 를 실행했습니다 . 내 관심의 대상은 부동 소수점 산술 정밀도에 다소 민감하다는 것이 밝혀 졌으므로 배정 밀도의 높은 계산 비용에도 불구하고 단 정밀도가 아닌 배정 밀도로 GROMACS를 실행해야했습니다. 클러스터에서 GROMACS를 배정도로 컴파일했습니다. CPU에 비해 …
내 자신의 많은 작업이 알고리즘의 스케일링을 개선하는 데 중점을두고 있으며, 병렬 스케일링 및 / 또는 병렬 효율성을 나타내는 선호되는 방법 중 하나는 코어 수에 대해 알고리즘 / 코드의 성능을 플롯하는 것입니다. 여기서 축은 코어 수를 나타내고 y 축은 몇 가지 메트릭을 나타냅니다 ( 예 : 단위 시간당 수행 한 작업). …
OS X의 시작으로, 과학 컴퓨팅 및 HPC 응용 프로그램을위한 플랫폼으로서 Mac OS에 대해 적어도 Mac 세계 (당시 과학적 컴퓨팅에 가까운 곳은 없었 음)에는 많은 허브가있는 것 같았습니다. XGrid는 즉시 사용 가능했으며 Virginia Tech에는 멋진 Mac 기반 컴퓨팅 클러스터가 있었고 Stanford는 멋진 일 등을하고있었습니다. 그러나 최근에는 상황이 조용했습니다. Macresearch.org 사이트는 본질적으로 …
우리의 작업 그룹은 건물 에너지 성능을 시뮬레이션하는 데스크탑 응용 프로그램을 생성합니다. .NET 응용 프로그램이며 사용자가 많은 시뮬레이션을 실행하면 시간이 많이 걸릴 수 있습니다. 시뮬레이션은 완전히 병렬화가 가능 하며 "사무실"에 매우 중요한 HPC 컴퓨팅 리소스가 있습니다. 우리가 가진 한 가지 아이디어는 사용자가 매우 오래 실행될 것이라는 시뮬레이션을 오프로드 할 수 있도록하는 …
이 질문은 계산과 관련이 있으므로 여기에 게시하기로 결정했습니다. 잘만되면 그것이 적절하게 보일 것입니다. 방금 대기 및 해양 모델을 실행하기 시작했으며 현재 데스크탑보다 더 많은 코어, 메모리 및 디스크 공간이 필요하다는 것을 알고 있습니다. 우리 기관에는 고성능 컴퓨팅 서비스가 있으며, 연구원들은 매월 고정 된 가격으로 코어를 임대 할 수 있습니다. 내 …
MPI에서 가장 싫어하는 것은 데이터 지향 (예 : 데이터 맵 / 마스크)을 처리하는 것입니다. 왜냐하면 객체 지향 C ++에는 잘 맞지 않기 때문입니다. boost::mpi그러나 웹 사이트에서 MPI 1.1 만 지원합니다. boost :: mpi는 표준 메시지 전달 인터페이스에 대한 C ++ 친화적 인 인터페이스입니다. Boost.MPI는 Boost.Serialization 라이브러리를 사용하여 사용자 정의 형식에 …
Valgrind + Callgrind를 사용하여 내가 작성한 솔버를 프로파일 링하고 있습니다. Valgrind 사용자 매뉴얼에서 알 수 있듯이 컴파일러의 디버깅 옵션으로 코드를 컴파일했습니다. "디버깅 정보 없이는 Valgrind 도구를 사용하여 수행 할 수있는 가장 좋은 기능은 특정 코드가 속하는 기능을 추측하는 것입니다. 이로 인해 오류 메시지와 프로파일 링 출력이 거의 쓸모 없게됩니다. -g를 …