วิทยาศาสตร์การคำนวณ

ถามตอบสำหรับนักวิทยาศาสตร์ที่ใช้คอมพิวเตอร์เพื่อแก้ปัญหาทางวิทยาศาสตร์

3
PDE ในหลายมิติ
ฉันรู้ว่าวิธีการส่วนใหญ่ในการค้นหาวิธีแก้ปัญหาโดยประมาณสำหรับ PDE นั้นขยายขนาดได้ไม่ดีเท่าจำนวนมิติและ Monte Carlo ใช้สำหรับสถานการณ์ที่เรียกว่า ~ 100 มิติ อะไรคือวิธีที่ดีในการแก้ปัญหาเชิงตัวเลขอย่างมีประสิทธิภาพในช่วง 4-10 มิติ? 10-100? มีวิธีการอื่นใดนอกเหนือจาก Monte Carlo ที่ขยายได้ดีกับจำนวนมิติหรือไม่?

2
อะไรคือข้อดี / ข้อเสียของวิธีการจุดภายในด้วยวิธี Simplex สำหรับการเพิ่มประสิทธิภาพเชิงเส้น?
ดังที่ฉันเข้าใจเนื่องจากการแก้ปัญหาของโปรแกรมเชิงเส้นเกิดขึ้นเสมอที่จุดสุดยอดของชุด polyhedral ที่เป็นไปได้ (หากมีวิธีการแก้ปัญหาและค่าฟังก์ชันวัตถุประสงค์ที่เหมาะสมที่สุดถูก จำกัด ขอบเขตจากด้านล่างสมมติว่าเป็นปัญหาการย่อขนาด ภายในของภูมิภาคที่เป็นไปได้จะดีกว่าไหม มันมาบรรจบกันเร็วขึ้นไหม? ภายใต้สถานการณ์ใดจะเป็นประโยชน์ที่จะใช้วิธี simplex เหนือวิธีจุดภายใน? จะง่ายกว่าที่จะใช้ในรหัสกว่าอีกหรือไม่

3
แนวทางปฏิบัติที่ดีที่สุดสำหรับการอธิบายแบบจำลองของ บริษัท ตัวแทน
ฉันทำงานค่อนข้างหนักในวิชาคณิตศาสตร์ชีววิทยา / ระบาดวิทยาซึ่งงานด้านการสร้างแบบจำลอง / วิทยาศาสตร์การคำนวณส่วนใหญ่ยังคงถูกครอบงำโดยกลุ่ม ODEs ซึ่งบางครั้งก็เป็นที่เข้าใจกันดี ข้อเสียอย่างหนึ่งของแบบจำลองเหล่านี้คือพวกมันค่อนข้างง่ายที่จะอธิบายและทำซ้ำ ตารางค่าพารามิเตอร์และสมการด้วยตนเองและคุณได้ให้ทุกสิ่งที่พวกเขาต้องการเพื่อทำซ้ำการวิจัยของคุณไม่ว่าพวกเขาจะรู้สึกชอบการนำไปใช้ แต่แบบจำลองที่ซับซ้อนกว่านี้ก็เริ่มเป็นที่นิยม โดยเฉพาะอย่างยิ่งโมเดลที่อิงตัวแทนดูเหมือนจะยากที่จะอธิบายในสิ่งพิมพ์และยากที่จะทำซ้ำเพราะพวกเขาไม่จำเป็นต้องอธิบายอย่างสมบูรณ์แบบโดยชุดของ ODE มีแนวทางใดบ้างหรือเพียงแค่ประสบการณ์เชิงปฏิบัติที่อยู่เบื้องหลังการอธิบายแบบจำลองเหล่านี้ในแบบที่ผู้อ่านเข้าใจว่าเกิดอะไรขึ้นและทำให้พวกมันค่อนข้างตรงไปตรงมาในการทำซ้ำ

4
วิธีจัดการกับข้อมูลมากเกินไป
การจำลองพลศาสตร์พลาสมาของเรามักจะสร้างข้อมูลมากเกินไป ในระหว่างการจำลองเราบันทึกคุณสมบัติทางกายภาพต่าง ๆ บนกริด (x, y, z, t) ที่มีขนาดใหญ่เท่ากับ (8192x1024x1024x1500) เป็นเวลาอย่างน้อย 10 คุณสมบัติ ข้อมูลนี้จะถูกประมวลผลหลังจากการจำลองเสร็จสมบูรณ์ กับเรา ทำภาพยนตร์ของคุณสมบัติ ทำการวิเคราะห์ฟูริเยร์ คำนวณคุณสมบัติเฉลี่ย การทุ่มตลาดอย่างง่ายของข้อมูลมากที่สุดเท่าที่จะทำได้ดีเมื่อเราศึกษาระบบขนาดเล็ก สิ่งนี้ทำให้เรามีความยืดหยุ่นในการโต้ตอบกับผลลัพธ์และตัดสินใจในภายหลังว่าเราต้องการทำอะไรกับมัน นอกจากนี้ยังช่วยให้เราจัดสรรทรัพยากรการคำนวณของเรา (เวลา CPU) เพียงแค่เรียกใช้การจำลอง เราได้เริ่มกระบวนการของการทำการวิเคราะห์ฟูริเยร์ได้ทันทีและกรองเฉพาะสเกลความยาวที่เลือกเท่านั้น ด้วยเหตุผลเชิงตัวเลขบางครั้งเราจำเป็นต้องแก้ไขสเกลความยาวที่เล็กกว่าที่เราสนใจจริง ๆ ดังนั้นในกรณีเหล่านี้ตัวกรองนี้ช่วยได้อย่างมาก นอกจากนี้เรายังมีการสำรวจห้องสมุดขนาน IO ต่างๆเช่นขนาน I / O ตัวเลือกใน HDF5 มีกลวิธีใดบ้างที่จะช่วยให้การประมวลผลข้อมูลมีประสิทธิภาพสูงสุด? มีประโยชน์ในการทำการวิเคราะห์ทั้งหมด (ไม่รวมการโพสต์เช่นภาพยนตร์และแปลง) ได้ทันทีหรือไม่ ฉันจินตนาการได้ว่าปัญหานี้กำลังเกิดขึ้นในงานวิจัยด้านอื่น ตัวอย่างเช่นคุณอาจมีการจำลองพลวัตของโมเลกุลที่ต้องพัฒนาเป็นเวลานาน แต่คุณสนใจในช่วงเวลาสั้น ๆ เมื่อมีบางสิ่งที่น่าสนใจเกิดขึ้น หรือใน CFD การพัฒนาครั้งแรกอาจช้า แต่เมื่อความปั่นป่วนเกิดขึ้นคุณอาจต้องใช้ความละเอียดเวลาสูงกว่าในการตรวจสอบพลวัต มีตัวอย่างของการรวบรวมผลลัพธ์ที่ซับซ้อนจากแบบจำลองหรือไม่?

3
ทำไมตัวแก้แบบขนานของฉันจึงช้ากว่าตัวแก้ไขแบบลำดับของฉัน
ฉันกำลังเล่นกับPETScและสังเกตว่าเมื่อฉันรันโปรแกรมด้วยกระบวนการมากกว่าหนึ่งผ่านMPIดูเหมือนว่าจะทำงานช้าลง ! ฉันจะตรวจสอบเพื่อดูว่าเกิดอะไรขึ้น?

1
ความซับซ้อนของการจำลอง MD
ฉันยังใหม่กับการจำลองโมเลกุล (MD) ความซับซ้อนของการจำลองพลวัตโมเลกุลในแง่ของเวลาการจำลองคืออะไร? กล่าวอีกนัยหนึ่งถ้าฉันต้องการเพิ่มเวลาจำลองจาก 10 nanoseconds เป็น 20 nanoseconds ฉันคาดหวังอะไรในแง่ของการเพิ่มขึ้นของ runtime?

1
มีอัลกอริทึมแบบ multigrid ที่แก้ปัญหาของ Neumann และมีอัตราการลู่เข้าโดยไม่ขึ้นกับจำนวนของระดับหรือไม่?
วิธี Multigrid มักจะแก้ปัญหา Dirichlet ในระดับ (เช่นจุด Jacobi หรือ Gauss-Seidel) เมื่อใช้วิธีไฟไนต์เอลิเมนต์แบบต่อเนื่องจะมีค่าใช้จ่ายน้อยกว่ามากในการรวบรวมปัญหาของ Neumann ขนาดเล็กกว่าการรวบรวมปัญหา Dirichlet ขนาดเล็ก วิธีการสลายตัวโดเมนที่ไม่ทับซ้อนกันเช่น BDDC (เช่น FETI-DP) สามารถตีความได้ว่าเป็นวิธีการหลายจุดที่แก้ปัญหา "ตรึง" Neumann ในระดับ น่าเสียดายที่หมายเลขเงื่อนไขสำหรับ BDDC หลายระดับเป็น ค( 1 + บันทึก( Hชั่วโมง) )2 ลิตรค(1+เข้าสู่ระบบ⁡(Hชั่วโมง))2LC \left(1 + \log \left(\frac{H}{h}\right)\right)^{2L} LLLH/ชมH/ชั่วโมงH/h มีวิธีการแก้ปัญหา "ตรึง" ฟอนนอยมันน์โดยไม่สูญเสียความเป็นอิสระในระดับ?
14 pde  multigrid 

3
Hartree-Fock เป็นเรื่องที่ดีสำหรับการสำรวจรูปทรงโมเลกุลและไม่เกิดพันธะหรือไม่?
มีกรณีที่ Hartree-Fock นั้นไม่ใช่วิธีที่ดีในการคำนวณรูปทรงสมดุลเมื่อโมเลกุลอยู่ในสภาพที่ไม่แตกหักหรือไม่?

4
ซอฟต์แวร์ที่เร็วที่สุดคืออะไร (โอเพ่นซอร์ส) เพื่อแก้ปัญหาการเขียนโปรแกรมจำนวนเต็มแบบผสม
ฉันมีปัญหาการเขียนโปรแกรมจำนวนเต็มแบบผสม และฉันกำลังใช้ GLPK เป็นตัวแก้ปัญหาของฉัน แต่ฉันพบว่า GLPK นั้นดีสำหรับปัญหาการเขียนโปรแกรมเชิงเส้น แต่สำหรับการเขียนโปรแกรมแบบผสมจำนวนเต็มนั้นต้องใช้เวลานานกว่าดังนั้นจึงไม่ตรงตามความต้องการของเรา ฉันกำลังมองหาซอฟต์แวร์อื่นอยู่ มีเครื่องมือโอเพนซอร์สที่ดีอื่น ๆ ในการแก้ปัญหาการเขียนโปรแกรมจำนวนเต็มแบบผสมด้วยความเร็วที่รวดเร็วหรือไม่? ขอบคุณ!

2
เหตุใดนักวิทยาศาสตร์การคำนวณจึงจำเป็นต้องใช้ std :: complex เวอร์ชันของตนเอง?
ไลบรารี C ++ ที่เป็นที่รู้จักมากขึ้นในด้านวิทยาศาสตร์การคำนวณเช่นEigen , Trilinosและdeal.IIใช้วัตถุไลบรารีส่วนหัวเทมเพลต C ++ มาตรฐานstd::complex<>เพื่อแทนจำนวนจุดลอยตัวที่ซับซ้อน ในคำตอบของ Jack Poulson สำหรับคำถามเกี่ยวกับ Constructor เริ่มต้นเขาชี้ให้เห็นว่าเขามีการนำไปใช้std::complexในElementalของตนเองด้วยเหตุผลหลายประการ อะไรคือเหตุผลเหล่านั้น อะไรคือข้อดีและข้อเสียของวิธีนี้?

1
มหาวิทยาลัยที่มีชื่อเสียงด้านฟิสิกส์การคำนวณ
ฉันสนใจฟิสิกส์เชิงคำนวณมากและสนุกมากที่ได้ศึกษาหัวข้อเหล่านี้ ตั้งแต่ฉันวางแผนที่จะไปหนึ่งภาคการศึกษาในต่างประเทศฉันสงสัยว่ามหาวิทยาลัยใดบ้างที่รู้จักกันดีในสาขาฟิสิกส์เชิงคำนวณ? โดยเฉพาะอย่างยิ่งในเรื่องเกี่ยวกับมหาวิทยาลัยในสหรัฐอเมริกา? ฉันรู้ว่าฟิสิกส์การคำนวณไม่ได้เป็นสาขาฟิสิกส์ขนาดใหญ่และเป็นอิสระ แต่มักจะรวมอยู่ในแผนกฟิสิกส์เชิงทฤษฎี แต่อย่างไรก็ตามฉันจะขอบคุณคำแนะนำและข้อเสนอแนะใด ๆ เกี่ยวกับกลุ่มการวิจัยที่ใช้งานและเติบโต แก้ไข: ฉันถูกขอให้เพิ่มรายละเอียดเพิ่มเติมเล็กน้อยในหัวข้อที่ฉันสนใจ นั่นเป็นเรื่องที่ค่อนข้างยากเนื่องจากฉันอยู่ในภาคการศึกษาปริญญาตรีที่ 4 ของฉันและรู้ว่าไม่มีอะไรเกี่ยวกับทฤษฎีสนามควอนตัมแบบตาข่าย ดังนั้นจึงเป็นเรื่องยากสำหรับฉันที่จะบอกว่าฉันชอบสาขาการวิจัยที่เฉพาะเจาะจง ฉันหวังว่าจะได้พบกับมหาวิทยาลัย / ภาควิชาที่ให้การบรรยายหลายครั้งเกี่ยวกับฟิสิกส์เชิงคำนวณหรือเสนอความเป็นไปได้ที่หลากหลายเพื่อที่ฉันจะได้มีความเชี่ยวชาญทันทีที่ฉันได้รับความรู้พื้นฐานทางทฤษฎี
14 education 

1
ฉันจะกำหนดระยะเวลาของตัวสร้างตัวเลขสุ่มหลอกได้อย่างไร
สมมติว่าฉันกำลังใช้ตัวสร้างตัวเลขแบบสุ่มหลอกเชิงเส้น (PRNG) เมื่อได้รับเมล็ดตัวคูณการคูณ (a) ตัวเลื่อน (c) และตัวประกอบโมดูลัส (m) ฉันจะกำหนดระยะเวลาของ PRNG ได้อย่างไร ฉันจะตรวจสอบได้โดยอัลกอริธึมการทดสอบ / การตรวจจับรูปแบบหรือมีสูตรโดยตรงสำหรับการคำนวณระยะเวลาหรือไม่ x0x0x_0 แม้ว่าคำถามของฉันเป็นเรื่องเกี่ยวกับวิธีการเชิงเส้นตรง แต่ฉันก็เปิดรับรู้มากขึ้นเกี่ยวกับการคำนวณระยะเวลาในทางปฏิบัติสำหรับ PRNG อื่น ๆ เช่นกัน

2
วิธีการคำนวณมุมที่มีเสถียรภาพของตัวเลขระหว่างเวกเตอร์
เมื่อใช้สูตรคลาสสิกสำหรับมุมระหว่างสองเวกเตอร์: α=arccosv1⋅v2∥v1∥∥v2∥α=arccos⁡v1⋅v2‖v1‖‖v2‖\alpha = \arccos \frac{\mathbf{v_1} \cdot \mathbf{v_2}}{\|\mathbf{v_1}\| \|\mathbf{v_2}\|} หนึ่งพบว่าสำหรับมุมเล็ก / เฉียบพลันมากมีการสูญเสียความแม่นยำและผลลัพธ์ไม่ถูกต้อง ดังที่อธิบายไว้ในคำตอบของ Stack Overflow คำตอบเดียวคือใช้อาร์กแทนเจนต์แทน: α=arctan2(∥v1×v2∥,v1⋅v2)α=arctan⁡2(‖v1×v2‖,v1⋅v2)\alpha = \arctan2 \left(\|\mathbf{v_1} \times \mathbf{v_2}\|, \mathbf{v_1} \cdot \mathbf{v_2} \right) และสิ่งนี้ย่อมให้ผลลัพธ์ที่ดีกว่า อย่างไรก็ตามฉันสงสัยว่าสิ่งนี้จะให้ผลที่ไม่ดีกับมุมที่อยู่ใกล้กับπ/2π/2\pi / 2หรือไม่ เป็นอย่างนั้นเหรอ? ถ้าเป็นเช่นนั้นมีสูตรใดที่จะคำนวณมุมอย่างแม่นยำโดยไม่ตรวจสอบความอดทนภายในifสาขาหรือไม่?

1
แนวทางในการดำเนินการทดลองทางคอมพิวเตอร์มีอะไรบ้าง
ฟิสิกส์ชีววิทยาเคมี ฯลฯ มีชุดของกฎที่แตกต่างกันสำหรับการทดลอง: เหตุการณ์ใดที่เกี่ยวข้องกับการพิจารณาวิธีหลีกเลี่ยงการปนเปื้อนของตัวอย่างวิธีการสร้างและแก้ไขกระบวนการทำซ้ำและอื่น ๆ มาตรฐานโปรโตคอลและแนวทางปฏิบัติที่ดีที่สุดในการรับรองความถูกต้องและการทำซ้ำในการทดลองเชิงตัวเลขคืออะไร

4
พิจารณาอย่างรวดเร็วว่าเมทริกซ์หนาแน่นหรือไม่นั้นอยู่ในระดับต่ำ
ในโครงการซอฟต์แวร์ที่ฉันกำลังดำเนินการการคำนวณบางอย่างง่ายขึ้นอย่างมากสำหรับเมทริกซ์ระดับต่ำที่หนาแน่น อินสแตนซ์ปัญหาบางอย่างเกี่ยวข้องกับเมทริกซ์อันดับต่ำหนาแน่น แต่พวกเขามอบให้ฉันเต็มแทนที่จะเป็นปัจจัยดังนั้นฉันจะต้องตรวจสอบอันดับและปัจจัยเมทริกซ์ถ้าฉันต้องการใช้ประโยชน์จากโครงสร้างระดับต่ำ . โดยทั่วไปแล้วเมทริกซ์ในคำถามจะเต็มหรือเกือบจะหนาแน่นเกือบสมบูรณ์โดยมี n ตั้งแต่หนึ่งร้อยถึงไม่กี่พัน หากเมทริกซ์มีอันดับต่ำ (พูดน้อยกว่า 5 ถึง 10) การคำนวณ SVD และใช้รูปแบบการแยกตัวประกอบอันดับต่ำนั้นคุ้มค่ากับความพยายาม อย่างไรก็ตามหากเมทริกซ์ไม่ได้อยู่ในอันดับต่ำความพยายามก็จะสูญเปล่า ดังนั้นฉันต้องการค้นหาวิธีที่รวดเร็วและเชื่อถือได้อย่างสมเหตุสมผลในการพิจารณาว่าอันดับอยู่ในระดับต่ำหรือไม่ก่อนที่จะลงทุนในการแยกตัวประกอบ SVD แบบเต็ม หาก ณ จุดใด ๆ เห็นได้ชัดว่าอันดับอยู่เหนือทางลัดกระบวนการสามารถหยุดได้ทันที หากโพรซีเดอร์แจ้งว่าเมทริกซ์อยู่ในระดับต่ำเมื่อไม่ผิดนี่ไม่ใช่ปัญหาใหญ่เพราะฉันยังคงทำ SVD แบบเต็มเพื่อยืนยันอันดับต่ำและค้นหาการแยกตัวประกอบต่ำ ตัวเลือกที่ฉันถือว่ามีอันดับที่เปิดเผย LU หรือ QR ตัวประกอบตามด้วย SVD แบบเต็มเป็นเช็ค มีวิธีอื่นที่ฉันควรพิจารณาอีกหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.