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

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

4
หนังสืออ้างอิงสำหรับการวิเคราะห์เชิงตัวเลข
ฉันได้เห็นแวบเดียวของการวิเคราะห์เชิงตัวเลข (หลัก ๆ แล้ววิธีการเชิงตัวเลขเช่นการค้นหารากสมการกำลังสองและเนื้อหาเบื้องต้นอื่น ๆ ) ในชั้นเรียนแคลคูลัส แต่ตอนนี้ฉันพบว่าตัวเองต้องการความซับซ้อนมากขึ้นในงานของฉัน มีหนังสือที่ดีที่จะช่วยให้ฉันเข้าใจแนวคิดเช่นความเสถียรของอัลกอริทึมการออกแบบอัลกอริทึมที่มีเสถียรภาพการเผยแพร่ข้อผิดพลาดการวิเคราะห์คอนเวอร์เจนซ์และอื่น ๆจากมุมมองทั่วไปหรือไม่? โดยพื้นฐานแล้วฉันต้องการที่จะเข้าใจและวิเคราะห์วิธี Subspace ของ Krylov (QMR, GMRES และ CG) และอัลกอริทึม Nonlinear Optimization ที่ดีกว่า โดยเฉพาะอย่างยิ่งการประมาณจุดลอยตัวสร้างความแตกต่างให้กับอัลกอริทึมอย่างไร ปัญหาเกี่ยวกับหนังสือส่วนใหญ่ที่ฉันเห็นคือพวกเขาเริ่มต้นโดยสมมติว่าผู้อ่านไม่รู้อะไรเลยเกี่ยวกับพีชคณิตเชิงเส้นและไปสู่พื้นฐานของ LU, Gaussian Elimination, QR ฯลฯ ที่ฉันไม่ต้องการ สิ่งที่ฉันต้องการคือ "มุมมองของนก" มากกว่าการวิเคราะห์เชิงตัวเลขโดยไม่ต้องลงรายละเอียดของวิธีการเฉพาะ ความกะทัดรัดจะได้รับการชื่นชมอย่างมาก

3
อะไรคือข้อดีและข้อเสียของการสลายตัวของอนุภาคและอัลกอริธึมการสลายตัวแบบขนานของโดเมนคืออะไร?
ฉันใช้การจำลองแบบโมเลกุล (MD) โดยใช้ซอฟต์แวร์หลายชุดเช่น Gromacs และ DL_POLY ขณะนี้Gromacสนับสนุนการสลายตัวของอนุภาคและอัลกอริธึมการสลายตัวของโดเมน ตามค่าเริ่มต้นการจำลอง Gromacs ใช้การสลายตัวของโดเมนแม้ว่าจะเป็นเวลาหลายปีจนกระทั่งเมื่อเร็ว ๆ นี้การสลายตัวของอนุภาคเป็นวิธีการเดียวที่นำมาใช้ใน Gromacs ในหนึ่งในเอกสาร Gromacs (DOI 10.1002 / jcc.20291) ผู้เขียนให้เหตุผลในการเลือกการสลายตัวของอนุภาคเริ่มต้น: "การตัดสินใจออกแบบช่วงแรกคือทางเลือกในการทำงานกับการสลายตัวของอนุภาคมากกว่าการสลายตัวของโดเมนเพื่อแจกจ่ายงานผ่านโปรเซสเซอร์ในกรณีหลังโดเมนเชิงพื้นที่ได้รับมอบหมายให้โปรเซสเซอร์ซึ่งช่วยให้สามารถค้นหาเพื่อนบ้านเชิงพื้นที่ได้อย่างรวดเร็วโดยการสื่อสารในท้องถิ่นเท่านั้น ไปยังอนุภาคที่เคลื่อนที่ผ่านขอบเขตเชิงพื้นที่มีความสำคัญการสลายตัวของโดเมนเป็นตัวเลือกที่ดีกว่าเมื่อขนาดของระบบเชิงเส้นมีขนาดใหญ่กว่าช่วงของการปฏิสัมพันธ์ซึ่งไม่ค่อยเกิดขึ้นในกรณีของการเคลื่อนที่ของโมเลกุลด้วยการสลายตัวของอนุภาคแต่ละตัวประมวลผล สำหรับเศษส่วนที่กำหนดของอนุภาคโดยใช้รายการเพื่อนบ้านที่คำนวณล่วงหน้าอย่างเท่าเทียมกันกระจายไปทั่วโปรเซสเซอร์FฉันเจFผมJF_{ij}เกิดขึ้นจากการทำงานร่วมกันระหว่างอนุภาค และซึ่งจำเป็นสำหรับการปรับปรุงความเร็วของทั้งอนุภาคและ ผมผมiJJjผมผมiJJjถูกคำนวณเพียงครั้งเดียวและสื่อสารกับโปรเซสเซอร์อื่น ๆ โปรเซสเซอร์ทุกตัวจะเก็บชุดพิกัดที่สมบูรณ์ของระบบไว้ในหน่วยความจำภายในของมันแทนที่จะ จำกัด ที่เก็บข้อมูลให้ตรงกับความต้องการ สิ่งนี้ง่ายกว่าและประหยัดค่าใช้จ่ายในการสื่อสารในขณะที่การอ้างสิทธิ์หน่วยความจำมักไม่ได้เป็นปัจจัย จำกัด แม้แต่กับอนุภาคหลายล้านตัว ในทางกลับกันเพื่อนบ้านซึ่งสามารถบรรจุอนุภาคได้มากถึง 1,000 เท่าของจำนวนนั้นจะถูกกระจายไปทั่วโปรเซสเซอร์ การสื่อสารนั้น จำกัด การส่งพิกัดและแรงหนึ่งครั้งต่อรอบวงแหวนโปรเซสเซอร์ ตัวเลือกเหล่านี้ได้รับการพิสูจน์แล้วว่ามีความแข็งแกร่งเมื่อเวลาผ่านไปและสามารถใช้กับกลุ่มโปรเซสเซอร์ที่ทันสมัยได้อย่างง่ายดาย " พวกเขาหมายถึงอะไรโดย "ขนาดของระบบเชิงเส้น" ในประโยค "การสลายตัวของโดเมนเป็นตัวเลือกที่ดีกว่าเฉพาะเมื่อขนาดของระบบเชิงเส้นมีขนาดใหญ่เกินขอบเขตของการปฏิสัมพันธ์ซึ่งไม่ค่อยเกิดขึ้นในโมเลกุล" จากย่อหน้าข้างต้นฉันได้รับแนวคิดว่าการสลายตัวของอนุภาคมีข้อดีที่ไม่ต้องจัดการกับอนุภาคที่เคลื่อนที่ข้ามขอบเขตของโดเมน แต่คุณต้องมีหน่วยความจำเพียงพอสำหรับโปรเซสเซอร์แต่ละตัวเพื่อจัดเก็บการกำหนดค่าระบบทั้งหมด ดังนั้นการสลายตัวของอนุภาคจึงดูดีมากในขณะที่การสลายตัวของโดเมนดูไม่ดีนัก ฉันแน่ใจว่านี่เป็นคำถามที่ซับซ้อนมาก (และอาจเป็นเรื่องของหนังสือหลายเล่ม) แต่โดยทั่วไปแล้วหากการสลายตัวของอนุภาคดูดีมากทำไมทุกคนต้องใช้การย่อยสลายโดเมน …

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

3
I / O กลยุทธ์สำหรับปัญหาการคำนวณกับชุดข้อมูลขนาดใหญ่?
กลุ่มวิจัยของฉันมุ่งเน้นไปที่การเปลี่ยนแปลงระดับโมเลกุลซึ่งสามารถสร้างข้อมูลกิกะไบต์ได้เป็นส่วนหนึ่งของวิถีเดียวซึ่งจะต้องวิเคราะห์ ปัญหาหลายอย่างที่เราเกี่ยวข้องกับความสัมพันธ์ในชุดข้อมูลซึ่งหมายความว่าเราจำเป็นต้องติดตามข้อมูลจำนวนมากในหน่วยความจำและวิเคราะห์พวกเขามากกว่าที่จะใช้วิธีการเรียงลำดับมากขึ้น สิ่งที่ฉันอยากรู้คือกลยุทธ์ที่มีประสิทธิภาพที่สุดในการจัดการ I / O ของชุดข้อมูลขนาดใหญ่เป็นสคริปต์ ปกติแล้วเราจะใช้สคริปต์ที่ใช้ Python เพราะมันทำให้การเข้ารหัสไฟล์ I / O น้อยกว่า C หรือ Fortran แต่เมื่อเรามีบรรทัดที่ต้องประมวลผลเป็นสิบหรือร้อยล้านก็ไม่ชัดเจนว่าวิธีที่ดีที่สุดคืออะไร . เราควรพิจารณาทำส่วนไฟล์อินพุตของรหัสใน C หรือกลยุทธ์อื่นมีประโยชน์มากกว่าหรือไม่ (จะโหลดล่วงหน้าทั้งอาเรย์ลงในหน่วยความจำได้ดีกว่าชุดของการอ่านตามลำดับของ "chunks" (ลำดับเมกะไบต์) หรือไม่ หมายเหตุเพิ่มเติมบางส่วน: เรากำลังมองหาเครื่องมือการเขียนสคริปต์เป็นหลักสำหรับการโพสต์การประมวลผลมากกว่าเครื่องมือ "ออนไลน์" ดังนั้นการใช้ Python D = 16LimΔ t → ∞⟨ ( x ( t + Δ t ) - x ( t ) …
15 python  c  efficiency 

1
มีการใช้งาน ILU หลายระดับแบบโอเพนซอร์สแบบผกผันหรือไม่?
ฉันประทับใจมากกับประสิทธิภาพของอนุกรมของILU preconditioners หลายระดับโดยเฉพาะHelmholtz ที่ต่างกันแต่ฉันประหลาดใจที่ไม่พบการใช้งานโอเพ่นซอร์สใด ๆ โดยเฉพาะอย่างยิ่งILUPACKทำให้ไบนารีพร้อมใช้งานสำหรับนักวิชาการได้อย่างอิสระ แต่ไม่ปรากฏว่าพวกเขาปล่อยซอร์สโค้ดของพวกเขา เป็นกรณีที่ไม่มีผู้ใดได้เปิดแหล่งที่มาของการใช้งานหรือไม่

3
ทำไมการคูณการคูณเมทริกซ์ - เวกเตอร์ของฉันไม่
ขออภัยสำหรับโพสต์ที่ยาวนาน แต่ฉันต้องการรวมทุกอย่างที่ฉันคิดว่ามีความเกี่ยวข้องในครั้งแรก สิ่งที่ฉันต้องการ ฉันกำลังใช้ Krylov Subspace Method แบบขนานสำหรับเมทริกซ์หนาแน่น GMRES ส่วนใหญ่, QMR และ CG ฉันรู้ (หลังจากทำโปรไฟล์) ว่ารูทีน DGEMV ของฉันน่าสงสาร ดังนั้นฉันจึงตัดสินใจที่จะมีสมาธิกับมันโดยแยกมันออกมา ฉันได้ลองใช้งานด้วยเครื่อง 12 คอร์ แต่ผลลัพธ์ด้านล่างนี้สำหรับแล็ปท็อป Intel i3 แบบ 4 คอร์ แนวโน้มไม่แตกต่างกันมากนัก ฉันKMP_AFFINITY=VERBOSEส่งออกสามารถใช้ได้ที่นี่ ฉันเขียนรหัสเล็ก ๆ : size_N = 15000 A = randomly_generated_dense_matrix(size_N,size_N); %Condition Number is not bad b = randomly_generated_dense_vector(size_N); for it=1:n_times %n_times …

1
วิธีการที่มีประสิทธิภาพเป็นวิธีการ 'tendrils ของความรู้' เพื่อคอมพ์ วิทย์?
ฉันกำลังอ่านสิ่งนี้เกี่ยวกับ Math SE คำถามพื้นฐานคือ: สมมติว่ามีคนต้องการที่จะศึกษาบางสิ่งที่ก้าวหน้า วิธีหนึ่งในการทำเช่นนี้คือเริ่มต้นจากพื้นฐานและสร้างขึ้น แต่ "ภาพใหญ่" อาจหายไปในกระบวนการนี้ อีกวิธีหนึ่ง (ซึ่งฉันชอบเรียก Recursive Wiki) คือการหยิบกระดาษและ Google / Wiki เงื่อนไขที่ไม่เข้าใจ; อ่านพวกเขา ภายในนั้นจะเป็นคำศัพท์ใหม่ Google / Wiki พวกเขาจนกว่าคุณจะถึง "กรณีฐาน" ของการรู้เนื้อหาอย่างละเอียด ทำงานย้อนกลับจนกว่าคุณจะเข้าใจกระดาษอย่างละเอียด ทำซ้ำสำหรับเอกสารอื่น สิ่งนี้จะช่วยให้ได้รับความรู้ในขณะที่ยังคงมีแรงจูงใจ แต่มันอาจทำให้เกิดปัญหาพื้นฐาน มันขึ้นอยู่กับบทความโดยศ. Vakil จาก Stanford นี่คือข้อความที่ตัดตอนมา: ..... คณิตศาสตร์นั้นอุดมสมบูรณ์และไม่มีที่สิ้นสุดซึ่งเป็นไปไม่ได้ที่จะเรียนรู้อย่างเป็นระบบและหากคุณรอที่จะเชี่ยวชาญในหัวข้อหนึ่งก่อนที่จะย้ายไปยังหัวข้อถัดไปคุณจะไม่เคยไปไหนมาไหน แต่คุณจะมีความรู้ที่แผ่ขยายออกไปไกลจากเขตความสะดวกสบายของคุณ จากนั้นคุณสามารถทดแทนได้จากเอ็นเหล่านี้และขยายเขตความสบายของคุณ สิ่งนี้ง่ายกว่าการเรียนรู้ "ส่งต่อ" (ข้อควรระวัง: การแบ็คกิ้งนี้จำเป็น ฉันทามติทั่วไประหว่างฝ่ายตรงข้ามของวิธีการดังกล่าวคือมันก็โอเคสำหรับสาขาเช่นพีชคณิตเรขาคณิตที่ 100s ของเอกสารที่มีการเผยแพร่ต่อไตรมาสหรือการวิจัยทฤษฎีสตริงที่ถ้าคุณพยายามที่จะสร้างพื้นฐานทางคณิตศาสตร์ก่อนที่คุณจะสัมผัสทฤษฎีสตริง 80 กับอัลไซเมอร์ คำถามของฉันคือ: นี่เป็นกลยุทธ์ที่ดีสำหรับการศึกษา …

4
แอปพลิเคชั่นอะไรบ้างที่ต้องใช้การคำนวณช่วงเวลา
ฉันมีความคิดพื้นฐานเกี่ยวกับการคำนวณช่วงเวลา (IA) แต่ดูเหมือนว่าจะเป็นสาขาที่น่าสนใจมากของวิทยาศาสตร์การคำนวณทั้งในทางทฤษฎีและในทางปฏิบัติ เป็นที่ชัดเจนว่าแอปพลิเคชันที่เห็นได้ชัดคือการตรวจสอบการคำนวณและปัญหาที่ไม่ถูกต้อง แต่นี่เป็นนามธรรมเกินไป เนื่องจากมีผู้คนจำนวนมากมีส่วนร่วมในการคำนวณที่ใช้ที่นี่ฉันอยากรู้เกี่ยวกับปัญหาโลกแห่งความจริงที่ยากหรือเป็นไปไม่ได้ที่จะแก้ปัญหาได้โดยไม่ต้อง IA

4
วิธีแก้ปัญหาของระบบเชิงเส้นของสมการสามารถประมาณค่าสำหรับตัวแปรแรกเท่านั้นหรือไม่
ฉันมีระบบเชิงเส้นของสมการขนาด mxm โดยที่ m มีขนาดใหญ่ อย่างไรก็ตามตัวแปรที่ฉันสนใจเป็นเพียงตัวแปร n ตัวแรก (n มีค่าน้อยเมื่อเทียบกับ m) มีวิธีที่ฉันสามารถประมาณโซลูชันสำหรับค่า m แรกโดยไม่ต้องแก้ไขระบบทั้งหมดหรือไม่ ถ้าใช่การประมาณนี้จะเร็วกว่าการแก้ระบบเชิงเส้นเต็มหรือไม่

1
สามารถใช้วิธีการ subspace ของ Krylov ได้อย่างราบรื่นสำหรับ multigrid หรือไม่?
เท่าที่ฉันทราบตัวแก้แบบหลายตัวใช้ตัวทำซ้ำแบบซ้ำซ้อนเช่น Jacobi, Gauss-Seidel และ SOR เพื่อลดความผิดพลาดที่ความถี่ต่าง ๆ สามารถใช้วิธีการ subspace ของ Krylov (เช่น gradient conjugate, GMRES และอื่น ๆ ) ได้หรือไม่? ฉันไม่คิดว่าพวกมันถูกจัดอยู่ในประเภท "สมูทเทนเนอร์" แต่พวกเขาสามารถใช้เพื่อประมาณโซลูชันกริดแบบหยาบ เราคาดหวังได้ไหมว่าการลู่เข้าหากันของสารละลายเหมือนกับวิธีมาตรฐานหลายจุด หรือมันขึ้นอยู่กับปัญหา?

4
จะจัดลำดับตัวแปรใหม่เพื่อสร้างเมทริกซ์แบนด์แบนด์วิดท์ขั้นต่ำได้อย่างไร
ฉันกำลังพยายามแก้สมการปัวซอง 2D ด้วยความแตกต่างอัน จำกัด ในกระบวนการฉันได้รับเมทริกซ์กระจัดกระจายที่มีเพียงตัวแปรในแต่ละสมการ ตัวอย่างเช่นถ้าตัวแปรเป็นUดังนั้นการแยกย่อยจะทำให้:555UยูU Ui−1,j+Ui+1,j−4Ui,j+Ui,j−1+Ui,j+1=fi,jUi−1,j+Ui+1,j−4Ui,j+Ui,j−1+Ui,j+1=fi,jU_{i-1,j} + U_{i+1,j} -4U_{i,j} + U_{i,j-1} + U_{i,j+1} = f_{i,j} ฉันรู้ว่าฉันสามารถแก้ปัญหาระบบนี้ได้โดยวิธีการวนซ้ำ แต่ความคิดนั้นเกิดขึ้นกับฉันว่าถ้าฉันสั่งตัวแปรอย่างเหมาะสมฉันอาจสามารถได้รับเมทริกซ์แถบสีซึ่งสามารถแก้ไขได้ด้วยวิธีโดยตรง (เช่นการกำจัดแบบเกาส์ w / o pivoting) เป็นไปได้ไหม มีกลยุทธ์ใดบ้างสำหรับการทำเช่นนี้กับคนอื่น ๆ ระบบที่กระจายน้อยลงหรือไม่?

4
ปัญหาความเป็นไปได้ในการโปรแกรมเชิงเส้นพร้อมข้อ จำกัด ด้านบวกอย่างเข้มงวด
มีระบบการทำงานของข้อ จำกัด เชิงเส้นเป็นx ≤ข ฉันต้องการหาเวกเตอร์ที่เป็นค่าบวกอย่างเข้มงวดx > 0ที่ตรงตามข้อ จำกัด เหล่านี้ ซึ่งหมายความว่าx ฉัน > 0เป็นสิ่งจำเป็นสำหรับทุกองค์ประกอบx ฉันของx ฉันจะใช้ตัวแก้ปัญหา LP เพื่อค้นหาเวกเตอร์ที่เป็นบวกอย่างเคร่งครัด (หรือยืนยันว่าไม่มี อยู่) ฉันไม่สามารถแนะนำระบบอื่นที่มีข้อ จำกัดAx≤bAx≤b{\bf Ax} \leq {\bf b}x>0x>0{\bf x} > 0xi>0xi>0x_i > 0xixix_ixx{\bf x}xx{\bf x}xx{\bf x}xi>0xi>0x_i > 0เพราะความเท่าเทียมต้องได้รับอนุญาตใน LP เสมอ - แต่ฉันสามารถใช้ตัวแก้ LP ได้หลายครั้งด้วยการเปลี่ยนฟังก์ชันวัตถุประสงค์ ฉันคิดว่าฉันควรใช้วิธีแปรผันหย่อน แต่ฉันไม่รู้วิธี

1
วิธีการหาสูตรอ่อนของสมการเชิงอนุพันธ์ย่อยสำหรับวิธีไฟไนต์เอลิเมนต์?
ฉันได้แนะนำเบื้องต้นเกี่ยวกับวิธีไฟไนต์เอลิเมนต์ซึ่งไม่ได้เน้นความเข้าใจที่ซับซ้อนของ 'สูตรอ่อน' ฉันเข้าใจว่าด้วยวิธีการ galerkin เราจะคูณทั้งสองด้านของ PDE (รูปไข่) ด้วยฟังก์ชั่นการทดสอบแล้วรวมเข้าด้วยกัน (ตามส่วนหรือตามทฤษฎีบท Divergence) บางครั้งฉันต้องรวมสองส่วนก่อนถึงสูตรอ่อน ๆ ที่เหมาะสม (ตามคำตอบที่ด้านหลังของหนังสือ) แต่เมื่อฉันพยายามที่จะใช้แนวคิดเดียวกันกับ PDE อื่น (สมมติว่าพวกเขายังคงเป็นอิสระเวลา) ฉันไม่สามารถจำได้ว่าเมื่อสูตรที่เหมาะสมสำหรับ discretization มี 'ธงสีแดง' ที่บอกได้ไหมว่าแบบฟอร์มนี้สามารถแยกเป็นระบบเชิงเส้นของสมการได้หรือไม่ นอกจากนี้ฉันจะเลือกชุดฟังก์ชันพื้นฐานที่เหมาะสมได้อย่างไร



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