Có nên tập trung vào việc học toán hay tính toán?


11

Đồng thời với nghiên cứu của tôi về Phương pháp không gian con Krylov, tôi có tùy chọn khám phá toán học đằng sau HPC một bước trước hoặc lý thuyết tính toán (phần cứng, hệ điều hành, trình biên dịch, v.v.). Hiện tại, tôi biết cả hai đủ để chỉ nhận được bằng. Chẳng hạn, tôi biết cách rút ra các phương trình cho CG và những điều cơ bản của phương pháp lặp nhưng tôi không biết gì về các chi tiết và những thứ phức tạp hơn như Preconditioners và Convergence. Tương tự, tôi biết những điều cơ bản của Phương pháp phần tử hữu hạn (Dạng yếu, dạng không yếu, những thứ như Codomain và Galerkin và những thứ khác) nhưng sẽ không biết được độ sâu của nó. Về mặt tính toán, tôi biết cách viết mã theo tất cả các ngôn ngữ có thể và có thể sử dụng OpenMP và MPI đủ tốt. Tôi không hiểu phần cứng và bộ nhớ đệm tất cả những điều đó tốt.

Câu hỏi của tôi là: Người ta nên tập trung vào cái gì: Toán học hay Tính toán? Có phải chúng không thể tách rời trong HPC? Có nên cho một người tìm hiểu về cái này chứ không phải cái kia không?

EDIT: Tôi hiện đang học chuyên ngành Cơ khí (mà tôi rất tiếc) và có rất nhiều khóa học về kỹ thuật và tính toán (chất lỏng, truyền nhiệt, v.v.). Tôi sẽ tham gia trường cao học cho HPC năm nay và tôi muốn tăng cường một số khía cạnh (Toán / Comp / Hybrid) trước khi tôi bắt đầu nghiên cứu tốt nghiệp. Tôi thích môn toán và comp như nhau (vì vậy "Làm những gì bạn thích hơn" là không cần thiết).

Câu trả lời:


10

Tôi thích câu trả lời của aeismail, nhưng tôi sẽ cung cấp một quan điểm khác.

Trong tối ưu hóa, không thể thực sự tìm hiểu lĩnh vực mà không hiểu phân tích thực. Ngay cả trước khi bạn giải quyết các vấn đề về số, bạn cần hiểu các khái niệm về sự hội tụ của các chuỗi, bởi vì bạn sẽ chứng minh trong các lớp mà thuật toán hội tụ. Bạn sẽ phải hiểu các khái niệm như tính liên tục và sự khác biệt ở mức độ cao hơn mức độ hời hợt. Do đó, phân tích thực sự là một điều kiện tiên quyết cho các khóa học về lập trình phi tuyến.

Luận án của tôi liên quan đến các phương pháp để giải phương trình vi phân thông thường. Các vấn đề hội tụ, cụ thể là những vấn đề như "nếu tôi giảm dung sai lỗi cục bộ, thì giải pháp số tính toán của tôi tiếp cận giải pháp thực sự của phương trình tôi đang giải quyết" lại là những vấn đề cần phân tích thực. Để phát triển lý thuyết cho các vấn đề hội tụ đòi hỏi tôi (trái với mong muốn của các cố vấn của tôi) phải mất hai học kỳ phân tích thực tế. (Nó đã được đền đáp bằng một vài bản thảo.)

Tuy nhiên, tôi biết có những người ngoài kia sống sót khá độc đáo trong các phương pháp số và HPC mà không cần tham gia các lớp toán học thuần túy. Nó thực sự phụ thuộc vào thị trường ngách mà bạn muốn chiếm.

Nếu bạn muốn phát triển các phương thức mới, thì các lớp lý thuyết là hữu ích. Các lớp lý thuyết cũng hữu ích cho kiến ​​thức toán học nói chung; đọc các bài toán trở nên dễ dàng hơn nhiều

Nếu bạn muốn áp dụng các phương thức số cụ thể cho các vấn đề, các lớp phương thức số sẽ hữu ích hơn. Tôi tin rằng viễn cảnh này là nơi aeismail đến từ đó, và đó là một tình huống phổ biến hơn cho các kỹ sư. (Tuyên bố miễn trừ trách nhiệm: Chúng tôi biết nhau và tốt nghiệp từ cùng một bộ phận.)

Đối với HPC, ấn tượng tôi nhận được là kinh nghiệm là giáo viên tốt nhất. Tôi đã tham gia một khóa học lập trình song song, và nó hơi hữu ích, nhưng thông điệp chính của lớp là thử mọi thứ và xem chúng có hiệu quả không. Nếu nó quan trọng cho nghiên cứu luận án của bạn, bạn sẽ có kinh nghiệm về HPC. Nếu không, bạn sẽ không, và có lẽ nó sẽ không thành vấn đề cho đến khi bạn muốn chuyển đổi bánh răng và giải quyết các vấn đề của HPC. Luận án của tôi không đặc biệt nặng về HPC, ít nhất là về những gì tôi lập trình, vì vậy tôi không cần phải chọn bộ kỹ năng đó.

Để kết thúc, có lẽ bạn nên tập trung vào việc tìm hiểu nền tảng về các vấn đề liên quan đến vấn đề luận án của bạn, hãy ghi nhớ những gì bạn nghĩ bạn muốn làm trong tương lai và quyết định nền tảng chung, rộng lớn mà bạn cần trao đổi với các nhà nghiên cứu khác trong cộng đồng bạn muốn tham gia. Tiến sĩ của bạn sẽ là một trong những cơ hội cuối cùng để bạn tham gia các lớp học, và nếu bạn nghĩ rằng bạn muốn học lý thuyết toán học (hoặc bất kỳ môn học nào, thực sự), tự học nó khó hơn đáng kể mà không cần thiết lập một số loại cơ bản thành thạo trước.


Quan điểm thú vị, và ví dụ này là một phản hồi hữu ích theo quan điểm của tôi. (Tôi nên chỉ ra rằng tôi sắp đưa ra một vài bài giảng về tối ưu hóa trong đó tôi rõ ràng bỏ qua các bằng chứng về sự hội tụ, bởi vì trọng tâm là các phương pháp số và thực sự không có đủ thời gian để "chứng minh" mọi thứ nếu Tôi phải giới thiệu phân tích thực sự như một phần của món hời.)
aeismail

2
Tôi khuyên bạn nên tham gia đủ các khóa học toán học để có thể hiểu các định lý và bằng chứng (khi cần thiết, với nỗ lực) xuất hiện trên các tạp chí như SISC, J. Science Computing, CMAME, v.v. Điều này có thể có nghĩa là một khóa học về phân tích thực, một khóa học về PDE trừu tượng lý thuyết, một khóa học trong phân tích số nói chung, và một khóa học về sự phân biệt đối với các phương trình vi phân từng phần. Theo kinh nghiệm cá nhân của tôi, tự nghiên cứu, đào sâu trong các thư viện nguồn mở để hiểu lý do tại sao các lựa chọn được đưa ra và quan trọng nhất là trở thành nhà phát triển của một thư viện như vậy (PETSc) là vô giá đối với việc học HPC.
Jed Brown

Jed: Đáng buồn thay, điều này là không thể trong bối cảnh của nhiều sinh viên tốt nghiệp. Tôi biết tôi sẽ không thể tham gia tất cả các khóa học đó, cộng với tất cả các khóa học về khoa học vật lý mà tôi cần cho lĩnh vực nghiên cứu trực tiếp của mình. Vậy làm thế nào để một người cân bằng mà đặc biệt là trong bối cảnh có một cố vấn có thể không muốn một sinh viên đăng ký (hoặc ngồi trên) nhiều khóa học?
aeismail

@aeismail: Tôi đã xem nó như một khoản đầu tư trong sự nghiệp, và vẫn còn những khoảng trống tôi cần phải lấp đầy. Nếu nó quan trọng, bạn tìm thấy thời gian để làm điều đó. (Như tôi đã nói, tôi đã làm điều đó trái với mong muốn của các cố vấn của tôi, và kết thúc bằng một cách tiếp cận bắt đầu giải quyết loại vấn đề mà họ nói rằng họ muốn giải quyết trong 10 năm qua.) Điều đó nói rằng, thật khó để tìm ra thời gian, và thật khó để tìm các cố vấn hỗ trợ khi có quá nhiều áp lực phải xuất bản. Cũng khó nếu các cố vấn không làm trong khoa học tính toán (hoặc họ có những ý tưởng khác nhau về những gì nó làm hơn bạn).
Geoff Oxberry

12

HPC là sự pha trộn của toán học, tính toán, khoa học máy tính và ứng dụng. Bạn cần có khả năng hiểu tất cả chúng để thực sự thành công lâu dài. Tuy nhiên, bạn không nhất thiết phải đạt được mức độ thành thạo như nhau trong tất cả chúng.

Trong phần tính toán so với toán học, đối với một kỹ sư, tôi cho rằng các vấn đề triển khai số là quan trọng hơn lúc đầu. Nếu bạn đợi cho đến khi bạn học lý thuyết toán học và sau đó bắt đầu thực hiện, bạn có thể mất nhiều thời gian để làm những việc mà trong khi không nghi ngờ gì hữu ích, có thể không ảnh hưởng trực tiếp đến nghiên cứu luận án của bạn.

Vì vậy, ban đầu tôi muốn tìm hiểu các khía cạnh tính toán, sau đó quay lại và điền vào các lỗ hổng trong lý thuyết toán học. Các vấn đề về phần cứng cũng có thể được học - nhưng rất nhiều cách ảnh hưởng đến phần mềm cũng sẽ phụ thuộc vào nền tảng, vì vậy một lần nữa, nó có thể không phải là mục đầu tiên trong chương trình nghị sự của bạn.

Những người khác tất nhiên có thể không đồng ý với tôi; như bạn đã nói, đây là một ý kiến ​​nhiều hơn là một câu hỏi thực tế.


9

Tham gia càng nhiều khóa học càng tốt trong cả hai. Tôi đã làm, và tôi không hối tiếc.

Giả sử bạn quan tâm đến sự nghiệp nghiên cứu, bạn có thể thành công với bất kỳ kết hợp nào của cả hai. Tìm cộng tác viên có kiến ​​thức bổ sung cho bạn. Tôi biết một số lượng đáng kể toán học vì nó liên quan đến độ chính xác và ổn định của các phương pháp số, nhưng ít hơn nhiều về HPC. Tôi có các cộng tác viên biết rất rõ về HPC, vì vậy làm việc cùng nhau chúng ta có thể có được các phương pháp số sáng tạo chạy trên các máy lớn. Tôi làm toán và họ làm phần lớn tính toán.

Điều đó nói rằng, tôi nghĩ rằng toán học

  • là cơ bản hơn
  • khó khăn hơn để học
  • vẫn có liên quan trong một khoảng thời gian dài hơn

trong khi chủ đề HPC

  • thay đổi nhanh hơn
  • có thể tự mình nhặt được dễ dàng hơn
  • thường ít hữu ích và nhiều vấn đề / ứng dụng / máy cụ thể hơn

Đây là một sự tăng trưởng quá mức và chắc chắn sẽ thu hút những bình luận không đồng ý. Nhưng tôi nghĩ có sự thật với nó.


Cảm ơn bạn rất nhiều cho tất cả các câu trả lời của bạn. Xem xét tất cả mọi thứ, trong số 3 trụ cột của CSE (Toán số, HPC và Ứng dụng cho Khoa học / Kỹ thuật). Tôi quan tâm đến tất cả chúng nhưng tránh xa môn Toán vì tôi không thể làm theo các bằng chứng và giấy tờ tốt. Bằng cách tập trung vào Phân tích thực, Đại số tuyến tính và Phương pháp số bây giờ, tôi nghĩ rằng tôi sẽ chuẩn bị cho mình mọi thứ. Cố vấn của tôi cho biết mức độ tính toán thuần túy mà người ta hiểu là tỷ lệ thuận với mức độ đánh giá cao đối với bất kỳ lĩnh vực ứng dụng nào. Khi tôi (đọc lại) đọc Giải tích sau nhiều năm học tiếng Anh, tôi tin chắc về câu cách ngôn.
Thắc mắc

6

Tôi đồng ý với cả aeismail và Oxberry. Tôi quyết định viết một câu trả lời vì dường như bạn đang phải đối mặt với những câu hỏi tương tự mà tôi đang cố gắng tìm câu trả lời cho năm ngoái. Tôi cũng học chuyên ngành cơ khí (và ghét nó, cơ học đặc biệt vững chắc), tôi đã dành nhiều thời gian để làm việc với các phương pháp số trong CFD hoặc tối ưu hóa. Bây giờ tôi đang làm thạc sĩ về Toán ứng dụng và Khoa học tính toán. Theo quan điểm của tôi, trước tiên bạn cần quyết định những gì bạn muốn làm trong tương lai. Nếu bạn muốn đi vào mô hình hóa hoặc phát triển các phương pháp số thì bạn chắc chắn nên hướng tới toán học. Tôi đã dành hai năm làm việc với các phương pháp Phần tử hữu hạn và Phần tử hữu hạn mà không biết cơ sở sâu sắc và bây giờ tôi đang tham gia các lớp học về toán ứng dụng, tất cả đều có ý nghĩa hơn đối với tôi. Tôi nhận ra làm thế nào các phương pháp hoạt động chính xác và tôi không còn đi bộ một cách mù quáng chỉ thử nghiệm mọi thứ. Nó tiết kiệm rất nhiều thời gian và công sức. Nhưng nếu bạn quyết định muốn phát triển phần mềm và các chủ đề liên quan thì bạn có thể muốn tập trung vào phần HPC. Theo kinh nghiệm của tôi, có rất nhiều gói được tối ưu hóa và sẵn sàng sử dụng cho rất nhiều ứng dụng số. Vì vậy, nó sẽ không phải là ý tưởng tốt nhất để tôi dành nhiều thời gian để phát triển phần mềm của riêng mình nên tôi quyết định làm việc nhiều hơn về phần toán.


1

Tôi không tin vào sự phân đôi lý thuyết / ứng dụng, nhưng điều quan trọng là tiếp cận các lĩnh vực theo cách không hoàn toàn nằm ngoài ngữ cảnh. Hiểu về lý thuyết Tôi nghĩ cung cấp cho bạn một trực giác chung về vấn đề rất có giá trị vì nó giúp bạn không phải tập trung vào cụ thể sau khi cụ thể (tức là một triển khai cụ thể so với một vấn đề khác) và cho phép bạn nhìn vào bức tranh lớn. Tuy nhiên, sự hiểu biết này không phát sinh từ chân không và bạn không thể BẮT ĐẦU ở cấp độ này .. đó không phải là cách bộ não hoạt động. Bạn không thể đến khái niệm về một khu rừng mà chưa từng thấy một cái cây!

Điều đó không có nghĩa là lý thuyết cũng đóng vai trò phụ thuộc trong câu hỏi này. Có thể nói rằng sự hiểu biết lý thuyết cung cấp cho một nền kinh tế tinh thần quan trọng khi xem xét một loại vấn đề, nhưng nó không thể tồn tại mà không có sự cụ thể hóa điều đó (ít nhất là trong các lý thuyết tính toán).

Vì vậy, để trả lời câu hỏi của bạn: Nếu tất cả những gì bạn quan tâm là việc thực hiện, đó là kết quả, nhưng không phải là cải thiện / thay đổi việc thực hiện này, lý thuyết sẽ không quan trọng. Tuy nhiên, nếu bạn muốn tự sản xuất, thì bạn đang ở thế bất lợi cạnh tranh với những người hiểu lý thuyết hơn. Trừ khi bạn tự sản xuất theo năm tháng sẽ tốt hơn :)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.