과학 컴퓨팅과 수치 분석


9

저는 컴퓨터 과학과 수학의 이중 전공입니다. 나는 두 과목을 모두 좋아합니다. 과학 컴퓨팅 분야에서 대학원 경력을 쌓을 생각입니다. 과학 컴퓨팅과 수치 분석의 실제 차이점은 무엇입니까? 그들은 직업으로 공부합니까?

답변:


18

Wikipedia는 좋은 정의를 제공합니다

수치 분석은 (이산 수학과 구별되는) 수학적 분석 문제에 대해 수치 적 근사법 (일반적인 기호 조작과 대조)을 사용하는 알고리즘에 대한 연구입니다.

수치 분석가는 일반적으로 오차 범위 (근사값의 오차가 얼마나 클 수 있는가), 반복 체계의 수렴 (근사값이 올바른 한계에 접근 하는가), 수렴 및 순서 (얼마나 빠른가)를 포함하여 알고리즘에 대한 수학적 결과를 증명하는 데 관심이 있습니다. 알고리즘 수렴) 및 계산 복잡성 (알고리즘에 필요한 작업 수를 제한) 컴퓨터를 사용하지 않고도 이러한 영역에서 연구를 수행 할 수 있으며 1950 년대에 디지털 컴퓨터가 개발되기 전에 중요한 결과가 나오기도합니다.

Wikipedia에는 ​​"과학 컴퓨팅"에 대한 정의도 있습니다.

전산 과학 (과학 계산 또는 과학 계산) (SC)은 고급 컴퓨팅 기능을 사용하여 복잡한 문제를 이해하고 해결하는 급속도로 성장하는 다 분야입니다. 전산 과학은 다음과 같은 세 가지 요소를 융합합니다. [1] 과학 (예 : 생물학적, 물리적, 사회적), 공학 및 인문 문제를 해결하기 위해 개발 된 알고리즘 (숫자 및 비 숫자) 및 모델링 및 시뮬레이션 소프트웨어 계산이 까다로운 문제를 해결하는 데 필요한 고급 시스템 하드웨어, 소프트웨어, 네트워킹 및 데이터 관리 구성 요소를 최적화합니다. 과학 및 엔지니어링 문제 해결과 개발 컴퓨터 및 정보 과학을 모두 지원하는 컴퓨팅 인프라입니다.

과학 컴퓨팅은 컴퓨터에서 정확한 솔루션을 얻는 실질적인 측면에 관한 것입니다. 이것은 분명히 수치 분석 결과를 바탕으로하지만 컴퓨터 아키텍처 및 소프트웨어 엔지니어링에 크게 의존합니다. 과학 컴퓨팅에 대한 연구는 종종 자체적으로 수행되고 많은 응용 프로그램에서 사용될 하드웨어 및 소프트웨어를 개발하기 위해 수행되지만, 특정 과학 및 엔지니어링 문제를 해결해야 할 필요성으로 인해 많은 과학 컴퓨팅 연구가 있습니다. 예를 들어, 기후 변화를 연구하기위한 지구 기후 모델의 개발은 과학 컴퓨팅을 발전시켰다.

수치 해석은 수학 및 응용 수학 부서에서 가장 일반적으로 발견되는 반면, 과학 컴퓨팅은 컴퓨터 과학 부서, 수학 부서 및 다양한 공학 및 과학 분야에서 찾을 수있는 학제 간 분야입니다.


1
예전에는 일부 컴퓨터 과학 부서에서 많은 수치 분석 (교수, 학생, 수업, 연구)이 진행되었습니다. 이 작업의 대부분은 과학, 공학, 통계 (통계 컴퓨팅), 관리 / 운영 연구 등의 실제 문제를 해결하는 데 도움이되는 알고리즘과 소프트웨어를 개발하는 데 전념했습니다.
Mark L. Stone

응용 수학이 그들에게 좋은 출발점이 될까요?
blade

1
예, 응용 수학의 배경은 어느 방향에서나 도움이 될 것입니다. 실제 질문은 이미 가지고있는 것에 추가하고 싶은 것입니다. 너비 (컴퓨터 과학 및 전산 과학이 사용되는 일부 과학 또는 공학 분야)는 전산 과학과 같은 학제 간 분야에서 매우 유용합니다.
Brian Borchers

6

Grad 학교에서 공학에서 과학 컴퓨팅으로 이사 한 사람이 내가 여기서하고있는 일에 대한 부수적 인 필요로 내 2 센트입니다.

  • 수치 해석은 사물의 수학과 알고리즘에 중점을 둘 것입니다. 분석 솔루션이없는 특정 수학 문제를 해결하기 위해 어떤 기술을 사용해야하는지 파악 (예 : ODE의 PDE의 매트릭스 조작 최적화 등)
  • 수치 해석에는 요즘 많은 양의 프로그래밍이 필요하지만 여전히 효율적인 알고리즘의 수학적 아이디어를 컴퓨터 코드로 번역하고 있습니다.
  • 전통적으로 FORTRAN이 주류였습니다. 그러나 C / C ++ 및 요즘 Python으로 작업 할 수도 있습니다. Mathematica 또는 MATLAB과 같은 패키지가 포함될 수도 있습니다.
  • 과학적 컴퓨팅에 온다 과학적 문제를 해결하기 위해 컴퓨팅 리소스를 사용하려고하는 더 많은 응용 분야입니다. 여기에는 많은 너트와 볼트가 작동 할 수 있습니다. 예 : 코드 컴파일, 운영 체제 및 라이브러리 설치, 과학 코드 작동을위한 옵션 설정 등
  • 요즘에는 과학 계산에 상당한 병렬 처리가 포함되기 때문에 컴퓨팅 클러스터, 슈퍼 컴퓨터, 클라우드 컴퓨팅 등에 노출 될 가능성이 높습니다.
  • 과학 컴퓨팅에서는 C / FORTRAN 등의 프로그래밍 언어로 작업 할 수 있지만 bash / perl 등과 같은 "접착제"/ 스크립팅 언어로 많은 작업을 기대합니다.
  • Linux-ey 시스템에서 많은 작업을 수행하고 명령 줄 및 sed / awk 등과 같은 도구를 사용하여 상당히 능숙하게 작업 할 수 있습니다. 일부 사람들은 sys 관리자입니다.
  • 많은 과학 컴퓨팅에는 시각화 및 데이터 저장 / 데이터 검색이 포함됩니다. 많은 사람들이 빅 데이터 / 하둡 / 맵 리 듀스 등의 전문가가되었습니다.
  • 수치 해석은 본질적으로 전문직입니다. 수학과 코딩에 능숙하고 특정 문제를 매우 효율적으로 해결합니다. 때때로 길을 따라 알고리즘을 발명합니다. 과학 컴퓨팅은 어떤 의미에서는 일반적인 작업입니다. 상대적으로 말하기. 특정 응용 문제를 해결하기 위해 다양한 도구를 함께 사용하는 경우가 많습니다.
  • 많은 과학적 컴퓨팅에는 인터페이스 작업이 포함될 수 있습니다. 예를 들어 두 프로그램 간의 인터페이스. 처리를 위해 한 도구에서 다른 도구로 데이터를 파이프하는 위치. 도중에 일부 형식 조작이 있습니다. 즉, 도구가 실제로 서로 대화하도록 설계되지 않은 다양한 도구를 서로 대화하려고합니다.
  • 과학 컴퓨팅 전문가는 종종 다양한 데이터 형식을 마스터해야합니다. 많은 기기들이 독자적인 포맷을 가지고 있으며 누군가 수치 알고리즘이 선호하는 포맷으로 데이터를 디코딩해야합니다.
  • 일부 Scientific Computing 직원은 일반 연구원 / 학생 / 교수가 기관의 컴퓨팅 리소스를 사용하여 발생할 수있는 모든 문제를 해결할 수있는 매우 전문적인 성격의 "헬프 데스크"(유료)도 제공합니다. 즉, 과학 컴퓨팅 전문가는 다양한 코드와 패키지에 익숙하며 문제를 계산적으로 해결하기 위해 어떤 도구를 사용해야하는지 사용자에게 조언 할 수 있습니다.
  • 코드를 다른 하드웨어에 이식 할 수 있습니다. 또는 직렬 모드로 작성된 레거시 코드를 병렬화합니다. 또는 코드를 최적화하여 더 빠르게 실행하십시오. 어떤 사람들은 GPU / CUDA 등에서 실행되도록 코드를 변환하여 더 빨리 실행하도록합니다.
  • 과학 컴퓨팅의 상당 부분은 문제 해결과 관련이 있습니다. 종종 다른 사람들이 작성한 코드. 특정 하드웨어 등에서 충돌하는 이유를 파악하기 위해
  • 종종 당신은 전문가들 사이의 중개인 연락입니다. 예를 들어 저는 하드 코어 프로그래머, 계산이 필요하지만 많은 코딩을 할 수없는 생물 학자, 시스템 관리자, 네트워크 전문가, 데이터 센터를 운영하는 기술자 등으로 팀을 이루어야했습니다.
  • Scientific Computing 담당자는 새 하드웨어를 구입하거나 컴퓨팅 시스템의 아키텍처를 결정할 때 상당한 입력을 요구할 수 있습니다. 이러한 과제에서 Dell / Cray / IBM / Infiniband / Cisco 등의 영업 엔지니어 및 기술자와 긴밀히 협력하게됩니다.

이것이 필드에 대한 아이디어를 제공하기를 바랍니다.

하나의 마지막 조언 (큰 소금으로 가져 가라!) : 정밀성과 세부 사항 및 논문 읽기와 같은 수학에 능숙하고 개별 지능이 중요하고 오랜 기간 지속되는 중요한 집중 노력 후에 세부 사항을 파악하면 그런 다음 수치 해석으로 이동하십시오.

다른 한편으로, 만약 당신이 일반 주의적이기를 좋아하고, 지역을 바꾸고, 열심히 일하는 천재를 보상하고, 모든 거래의 잭이되고, 모호하고 모호한 권장 사항을 기꺼이 처리하고, 팀과 협력하고 갈등을 다루는 것처럼 , 마감일, MBA 등을 처리 한 다음 Scientific Computing 담당자가 되십시오.

다시 한 번 큰 소금으로 이것을 가져 가십시오. 모든 사람의 상황은 특별합니다. 그리고 우리 대부분은 우연의 일치에서 벗어난 곳에 착륙했습니다. 그렇게 계획하지 않았기 때문입니다. :)


0

당신은 응용 수학자가되고 싶어요. 이것은 공학 학교의 많은 대학에서 박사 학위를 취득 할 수있는 전공입니다. 내 경험상 수학이 더 중요한 기술이지만 공식 컴퓨터 과학의 일부 기술적 배경이 도움이 될 수 있으며 다른 곳에서는 얻지 못할 수 있습니다. CS 토끼 구멍을 멀리 가지 않도록 조심하십시오. 그렇지 않으면 실제 응용 프로그램에서 벗어나는 경향이있는 CS 연구를 시작할 수 있습니다.

귀하의 특정 질문에 대답하기 위해 응용 수학자는 수치 분석 및 분석 연구를 수행하고 과학 연구자와 협력하여 여러 분야에서 과학 컴퓨팅을 수행 할 수 있습니다. 과학 컴퓨팅을 구체적으로 추구하려면 컴퓨터 화학, 생물 물리학, 기후, 생물 정보학 등과 같은 과학 연구 분야에 들어가기를 원할 수 있습니다.


내 질문을 읽으면 내가 이중 전공임을 알 수 있습니다. 나는 실제로 내 CS 전공보다 내 수학 전공에 더 많은 시간을 할애합니다. 나는 CS에 깊이 들어가는 것에 대해 전혀 걱정하지 않는다
Blade

나는 당신의 질문을 읽었습니다. 그것이 내가 "그리고 박사"라고 말한 이유입니다. 대답은 전공을 선택하지 않은 다른 사람들에게도 도움이 될 것입니다. 검색에 행운을 빕니다. 박사 과정은 매우 유연하기 때문에 원하는 일을하는 그룹을 찾고 한 영역에 갇히는 것에 대해 너무 걱정하지 마십시오.
user21387
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.