수학이나 계산 공부에 집중하는 것이 바람직합니까?


11

Krylov Subspace Methods에 대한 연구와 동시에 HPC 뒤의 수학을 한 단계 앞당기거나 계산 이론 (하드웨어, OS, 컴파일러 등)을 선택할 수 있습니다. 현재, 나는 단지 지나갈 정도로 충분히 알고있다 . 예를 들어, CG에 대한 방정식과 반복 방법의 기본을 도출하는 방법을 알고 있지만 사전 조건 및 수렴과 같은 세부 사항과 더 복잡한 요소에 대해서는 실마리가 없습니다. 마찬가지로, 유한 요소 방법 (약한 형태, 비 약한 형태, Codomain 및 Galerkin과 같은 것)의 기초를 알고 있지만 그 깊이는 알지 못합니다. 계산 측면에서 가능한 모든 언어로 직렬로 코딩하는 방법을 알고 있으며 OpenMP 및 MPI를 충분히 사용할 수 있습니다. 나는 하드웨어를 이해하지 못하고 모든 것을 캐싱합니다.

내 질문은 : 수학이나 계산에 무엇을 집중해야 하는가? HPC에서 분리 할 수 ​​없습니까? 한 사람이 다른 사람이 아닌 다른 사람에 대해 배우는 것이 권장됩니까?

편집 : 나는 현재 기계 공학 (후회)을 전공하고 있으며 공학 및 계산 (유체, 열 전달 등)에 많은 코스가 있습니다. 올해 HPC 대학원에 진학 할 예정이며 대학원 과정을 시작하기 전에 일부 측면 (Math / Comp / Hybrid)을 강화하고 싶습니다. 나는 수학과 comp를 동일하게 좋아합니다 (따라서 "더 많은 것을 즐기십시오"는 중복됩니다).

답변:


10

나는 aeismail의 답변을 좋아하지만 대안적인 관점을 제공 할 것입니다.

최적화에서는 실제 분석을 이해하지 않고 현장을 실제로 배우는 것은 불가능합니다. 수치 문제를 다루기 전에도 알고리즘이 수렴한다는 클래스에서 증명할 것이기 때문에 시퀀스 수렴 개념을 이해해야합니다. 피상적 인 수준 이상의 연속성과 차별화와 같은 개념을 이해해야합니다. 따라서 실제 분석은 비선형 프로그래밍 과정의 전제 조건입니다.

내 논문은 일반적인 미분 방정식을 푸는 방법에 관한 것입니다. 수렴 문제, 특히 "로컬 오차 허용 오차를 줄이면 계산 된 수치 해가 내가 풀고있는 방정식의 해에 접근합니다"와 같은 문제가 다시 실제 분석이 필요한 문제입니다. 컨버전스 문제에 대한 이론을 개발하기 위해서는 (나의 고문의 희망과는 달리) 2 학기의 실제 분석이 필요했습니다. (이것은 몇 개의 원고로 지불했습니다.)

그러나 순수한 수학 수업을 들지 않고 수치 적 방법과 HPC에서 잘 살아남은 사람들이 있다는 것을 알고 있습니다. 그것은 실제로 당신이 차지하고 싶은 틈새 시장에 달려 있습니다.

새로운 방법을 개발하려면 이론 수업이 도움이됩니다. 이론 수업은 또한 일반 수학 능력에 도움이됩니다. 수학 논문을 읽는 것이 훨씬 쉬워졌습니다.

특정 수치 방법을 문제에 적용하려면 수치 방법 클래스가 더 도움이됩니다. 저는 이러한 관점이 aeismail이 시작된 곳이며 엔지니어에게는 더 일반적인 상황이라고 생각합니다. (면책 조항 : 우리는 서로를 알고 있으며 같은 부서를 졸업했습니다.)

HPC는 경험이 최고의 선생님이라는 인상을 받았습니다. 나는 병렬 프로그래밍 과정을 밟았으며 약간 유용했지만 수업의 주요 메시지는 일을 시도하고 그들이 효과가 있는지 확인하는 것이 었습니다. 논문 연구에 중요한 경우 HPC에 대한 경험을 얻을 수 있습니다. 그렇지 않으면 기어를 바꾸고 HPC 문제를 해결하기 전까지는 문제가되지 않을 것입니다. 나의 논문은 적어도 내가 프로그램 한 것의 관점에서 특히 HPC에 무겁지 않았으므로, 나는 그 기술을 선택할 필요가 없었습니다.

결론적으로, 당신은 아마도 당신의 논문 문제와 관련된 이슈들에 대한 배경 지식에 집중하고, 당신이 미래에하고 싶은 생각을 명심하고, 다른 연구원들과 의사 소통을해야 할 광범위하고 일반적인 배경을 결정해야합니다. 가입하려는 커뮤니티. 박사 학위는 수업을 수강 할 수있는 마지막 기회 중 하나가 될 것이며, 수학 이론 (또는 어떤 과목이든)을 배우고 싶다고 생각하는 경우, 기본 지식을 익히지 않고 스스로 학습하는 것은 상당히 어렵습니다. 능숙 함 우선.


흥미로운 관점과 그 예는 제 요점에 대한 유용한 반론입니다. (수렴 방법에 초점을 맞추고 수치 방법에 중점을두기 때문에 실제로 수렴을 증명할 시간이 충분하지 않기 때문에 최적화에 대해 몇 가지 강의를하려고합니다. 거래의 일부로 실제 분석을 소개해야합니다.)
aeismail

2
SISC, J. Scientific Computing, CMAME 등과 같은 저널에 나타나는 이론과 (필요한 경우 노력으로) 증거를 이해할 수 있도록 충분한 수학 과정을 수강하는 것이 좋습니다. 이것은 아마도 실제 분석 과정, 추상 PDE 과정을 의미합니다. 이론, 일반 수치 분석 과정 및 부분 미분 방정식의 이산화 과정. 개인적 경험, 자기 연구, 오픈 소스 라이브러리를 파헤쳐 서 왜 선택을했는지 이해하고, 가장 중요한 것은 그러한 라이브러리 (PETSc)의 개발자가되는 것이 HPC를 배우는 데 매우 중요했습니다.
Jed Brown

Jed : 슬프게도 많은 대학원생들의 상황에서는 불가능합니다. 본인은이 모든 과정과 직접 연구 분야에 필요한 모든 물리 과학 과정을 수강 할 수 없었 음을 알고 있습니다. 그렇다면 학생이 많은 과정에 등록하기를 원하지 않는지도 교수가있는 상황에서 어떻게 균형을 잡을까요?
aeismail 2016 년

@aeismail : 나는 그것을 커리어에 대한 투자로 보았지만 여전히 채워야 할 격차가 있습니다. 중요한 경우에는 할 시간을 찾으십시오. (내가 말했듯이, 나는 고문의 소원에 반하여, 지난 10 년 동안 그들이 해결하고자했던 문제의 유형을 해결하기 시작하는 접근 방식으로 끝났다.) 시간이 많이 걸리고 출판해야 할 압력이 너무 클 때 도움을주는 조언자를 찾기가 어렵습니다. 고문이 컴퓨터 과학 분야에 있지 않다면 (또는 그들이 당신과 다른 것에 대한 아이디어를 가지고 있음) 어렵다.
Geoff Oxberry

12

HPC는 수학, 계산, 컴퓨터 과학 및 응용 프로그램이 혼합되어 있습니다. 당신은 장기적으로 진정으로 성공하기 위해 그들 모두를 이해할 수 있어야합니다. 그러나 모든 수준에서 반드시 같은 수준의 숙련도를 달성 할 필요는 없습니다.

계산 대 수학 논쟁에서 엔지니어의 경우 수치 구현 문제가 처음에 더 중요하다고 주장합니다. 수학적 이론을 배울 때까지 기다렸다가 구현을 시작하면 의심 할 여지없이 논문 연구에 직접적인 영향을 미치지 않을 수있는 것들에 대해 오랜 시간을 할애 할 수 있습니다.

그래서 저는 처음에 계산 측면을 이해 한 다음 다시 돌아가서 수학 이론의 구멍을 채우는쪽으로 기 울었습니다. 하드웨어 문제도 배울 수 있지만 소프트웨어에 영향을 미치는 많은 방법은 플랫폼에 따라 다르므로 다시 아젠다에서 첫 번째 항목이 아닐 수도 있습니다.

물론 다른 사람들은 저와 동의하지 않을 수 있습니다. 당신이 언급했듯이, 이것은 사실적인 질문보다 더 많은 의견입니다.


9

둘 다 가능한 많은 코스를 수강하십시오. 나는 그것을 후회하지 않습니다.

연구 경력에 관심이 있다고 가정하면 두 가지를 혼합하여 성공할 수 있습니다. 지식이 당신을 보완하는 공동 작업자를 찾으십시오. 나는 수치 적 방법의 정확성과 안정성과 관련이 있지만 HPC에 대해서는 훨씬 적은 수학을 알고 있습니다. HPC를 잘 아는 공동 작업자가 있으므로 함께 작업하면 큰 컴퓨터에서 혁신적인 수치 방법을 실행할 수 있습니다. 나는 수학을하고 계산을합니다.

즉, 나는 수학을 생각

  • 더 근본적이다
  • 배우기가 더 어렵다
  • 더 오랜 기간 동안 관련 유지

반면 HPC 주제

  • 더 빠르게 변화하다
  • 혼자서 더 쉽게 픽업 할 수 있습니다
  • 덜 유용하고 더 많은 문제 / 응용 프로그램 / 기계 별

이것은 지나치게 일반화되어 있으며 의견이 맞지 않는 의견을 유치 할 것입니다. 그러나 나는 그것에 진실이 있다고 생각합니다.


모든 답변에 감사드립니다. CSE (수학, HPC 및 과학 / 엔지니어링 응용)의 3 개 기둥 중 모든 것을 고려하십시오. 나는 그들 모두에 관심이 있지만 증거와 서류를 잘 따르지 못했기 때문에 Math에서 멀어졌습니다. 실제 분석, 선형 대수 및 수치 법에 중점을 두어 모든 것을 스스로 준비 할 수 있다고 생각합니다. 내 조언자는 순수 미적분의 수준은 모든 응용 분야에 대한 감사의 수준에 직접 비례한다고 말했다. 수년간의 Engg 이후에 미적분학을 다시 읽고있을 때 나는 격언을 확신합니다.
Inquest

6

나는 aeismail과 Oxberry에 동의합니다. 작년에 대한 답변을 찾으려고했던 것과 같은 질문에 직면 한 것 같아서 답변을 작성하기로 결정했습니다. 나는 또한 기계 공학을 전공했으며 (특히 견고한 기계공을 싫어했습니다) CFD 또는 최적화에서 수치 방법을 다루는 데 많은 시간을 보냈습니다. 이제 응용 수학 및 전산 과학 석사 과정을 밟고 있습니다. 내 관점에서, 당신은 먼저 미래에 무엇을하고 싶은지 결정해야합니다. 수치 적 방법의 모델링 또는 개발에 들어가고 싶다면 반드시 수학을 향해야합니다. 나는 깊은 기초를 알지 못하고 Finite Volume 및 Finite Element 메서드를 사용하여 2 년을 보냈으며 이제는 응용 수학 수업을 들었으므로 모두 나에게 더 의미가 있습니다. 나는 방법이 정확히 작동하는 방식을 알고 더 이상 맹목적으로 모든 것을 실험하지 않습니다. 많은 시간과 노력을 절약합니다. 그러나 소프트웨어 및 관련 주제를 개발하기로 결정한 경우 HPC 부분에 중점을 둘 수 있습니다. 내 경험상, 많은 수치 적용에 최적화되고 사용할 수있는 패키지가 많이 있습니다. 따라서 내 소프트웨어를 개발하는 데 많은 시간을 할애하는 것이 가장 좋은 아이디어는 아니므로 수학 부분에 대해 더 많은 연구를하기로 결정했습니다.


1

나는 이론 / 응용 이분법을 믿지 않지만, 문맥에서 완전히 벗어나지 않는 방식으로 필드에 접근하는 것도 중요합니다. 이론 이해 나는 당신이 구체적인 콘크리트 (즉, 하나의 특정 구현 대 다른 구현)에 초점을 맞출 필요가 없기 때문에 매우 귀중한 문제에 대한 일반적인 직관을 제공하고 큰 그림을 볼 수있게합니다. 그러나 이러한 이해는 진공 상태에서 발생하지 않으며이 수준에서 시작할 수 없습니다. 뇌가 작동하는 방식이 아닙니다. 나무를 보지 않고는 숲의 개념에 도달 할 수 없습니다!

이론이이 질문에서 하위 역할을한다고 말하는 것은 아닙니다. 다시 말해서 이론적 이해는 일련의 문제를 고려할 때 상당한 정신 경제학을 제공하지만, 그것을 계산하는 구체적인 근거가 없다면 (적어도 계산 이론에서) 존재할 수는 없다.

따라서 귀하의 질문에 대답하십시오 : 관심있는 모든 것이 구현이라면, 그 결과이지만이 구현을 개선 / 변경하지 않는 경우 이론은 그렇게 중요하지 않습니다. 그러나 당신이 자신의 것을 생산하고 싶다면, 당신은 이론을 더 잘 이해하는 사람들과 경쟁 우위에 있습니다. 물론 더 나은 일이 몇 년 동안 자신을 생산하지 않는 한 :)

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