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

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

3
ซอฟต์แวร์เดสก์ท็อปที่มีทรัพยากร HPC สำหรับการบีบอัดหมายเลขท้ายหลัง
เวิร์กกรุ๊ปของเราผลิตแอปพลิเคชันเดสก์ท็อปที่จำลองการสร้างประสิทธิภาพการใช้พลังงาน มันเป็นแอปพลิเคชั่น. NET และเมื่อผู้ใช้เรียกใช้การจำลองจำนวนมากพวกเขาอาจต้องใช้เวลาค่อนข้างนาน การจำลองมีความสามารถในการขนานกันโดยสิ้นเชิงและเรามีทรัพยากรการคำนวณHPC ที่สำคัญมากที่ "สำนักงาน" แนวคิดหนึ่งที่เรามีคือการอนุญาตให้ผู้ใช้ออฟโหลดการจำลองที่เรารู้ว่าจะใช้เวลานานมาก (ในขณะที่การจำลองแต่ละตัวทำงานประมาณ 30-120 วินาทีการรันการจำลองจำนวนมากอาจใช้เวลาหลายวัน) มีใครทำแบบนี้มาก่อนหรือไม่ ถ้าเป็นเช่นนั้นคุณใช้ห้องสมุดใด ๆ เพื่อทำให้งานง่ายขึ้นหรือไม่? มันคุ้มค่ากับความพยายามหรือไม่? แก้ไขเพื่อเพิ่ม: แต่ละงานสำหรับการถ่ายจำลองจะเป็น บรรจุไฟล์ (ประมาณ 5Mb) อัปโหลดไปยังเซิร์ฟเวอร์ของเรา การย่อยสลายแพคเกจเป็นแบบจำลองส่วนบุคคล (แต่ละครั้งใช้เวลาประมาณ 30-120 วินาทีและขนานกันโดยสิ้นเชิง) จำนวนของแบบจำลองเป็นฟังก์ชั่นของจำนวนตัวเลือกที่เลือกโดยผู้ใช้ (ฉนวนกันความร้อนการวางแนวอาคาร ฯลฯ ) และกรณีที่เลวร้ายที่สุดในการเลือก ทุกตัวเลือกที่เป็นไปได้จะส่งผลให้เกิดการจำลอง 1E50 ไม่รู้จักการเรียกใช้การจำลอง 100 ถึง ~ 1E5 แต่ผู้ใช้ส่วนใหญ่จะทำงานน้อยกว่า 10 ประกอบชิ้นส่วนจำลองที่เสร็จสมบูรณ์แล้วและดาวน์โหลดไฟล์ที่มีขนาดใหญ่ขึ้นในขณะนี้ เราไม่แน่ใจว่าอินเทอร์เฟซใดที่จะใช้เนื่องจากกลุ่มของเรายังใหม่กับสิ่งนี้และด้วยการลดงบประมาณมันอาจจะเสร็จสมบูรณ์ในเวลา แต่ต้องง่ายต่อการดูแลรักษาคนต่อไป (ถ้ามี) แอพนี้ใช้. NET 4 อยู่แล้วและสามารถขยายเพื่อใช้คอร์ทั้งหมดที่ผู้ใช้มี (เครื่อง dev …
17 hpc  partitioning 

8
วิเคราะห์ข้อมูลโครงสร้างโปรตีนใน C
พื้นหลังของฉันอยู่ในฟังก์ชั่นจีโนม แต่เมื่อเร็ว ๆ นี้ฉันได้ทำงานกับปัญหาที่เกี่ยวข้องกับโครงสร้างโปรตีน ฉันเขียนโปรแกรมที่เกี่ยวข้องใน C สร้างตัวแยกวิเคราะห์ไฟล์ PDB ของตัวเองตั้งแต่เริ่มต้น ฉันไม่ต้องกังวลกับการแยกวิเคราะห์ที่แข็งแกร่งจริง ๆ ฉันเพิ่งรู้ว่าการสร้างตัวเองจะเป็นวิธีที่ดีที่สุดในการบังคับตัวเองให้เข้าใจรูปแบบ PDB ตอนนี้ฉันได้ผ่านขั้นตอนนี้แล้วฉันกำลังมองหาบางสิ่งที่แข็งแกร่งและเป็นผู้ใหญ่มากกว่านี้ มีไลบรารีโครงสร้างโปรตีนโอเพนซอร์ซที่ถูกใช้งานใน C หรือไม่? ฉันสามารถค้นหาบางอย่างบน Google แต่ฉันไม่เคยได้ยินเกี่ยวกับพวกเขามาก่อนและดูเหมือนว่าพวกเขาจะไม่โตเต็มที่หรือมั่นคง คำถามที่เกี่ยวข้องเล็กน้อย: ทุกคนกำลังทำการคำนวณประเภทนี้ทั้งหมดโดยใช้ Python หรือไม่? หรือรหัส homebrew? PS ฉันกำลังมองหาไลบรารี่ที่มีตัวแยกวิเคราะห์ไฟล์ PDB, ฟังก์ชั่นสำหรับการคำนวณมุมบอนด์, ความยาวบอนด์, มุมแรงบิด, พื้นที่ผิวที่สามารถเข้าถึงพื้นผิวได้ ฯลฯ

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

2
ตัวอย่างที่ใช้ได้จริงว่าทำไมมันไม่ดีที่จะกลับเมทริกซ์
ฉันทราบเกี่ยวกับการแปลงเมทริกซ์เพื่อแก้ปัญหาระบบเชิงเส้นไม่ใช่ความคิดที่ดีเนื่องจากมันไม่ถูกต้องและมีประสิทธิภาพเท่ากับการแก้ไขระบบโดยตรงหรือใช้การสลาย LU, Cholesky หรือ QR อย่างไรก็ตามฉันไม่สามารถตรวจสอบสิ่งนี้ด้วยตัวอย่างที่ใช้งานได้จริง ฉันได้ลองใช้รหัสนี้ (ใน MATLAB) M = 500; A = rand(M,M); A = real(expm(1i*(A+A.'))); b = rand(M,1); x1 = A\b; x2 = inv(A)*b; disp(norm(b-A*x1)) disp(norm(b-A*x2)) และค่าคงที่จะเป็นแบบเดียวกันเสมอ (10 ^ -13) มีคนให้ตัวอย่างที่เป็นประโยชน์ซึ่ง inv (A) * b ไม่ถูกต้องน้อยกว่า A \ b หรือไม่ ------ อัปเดตคำถาม ------ ขอบคุณสำหรับคำตอบ อย่างไรก็ตามสมมติว่าเราต้องแก้คูณnnnระบบAx=bAx=bAx = bโดยที่AAAมักเป็นเมทริกซ์เดียวกันเสมอ …

1
การประเมินข้อผิดพลาด 'a priori' และ 'posteriori' แตกต่างกันอย่างไรในการวิเคราะห์เชิงตัวเลข
ฉันได้เรียนรู้เกี่ยวกับวิธีไฟไนต์เอลิเมนต์ (เช่นเดียวกับวิธีการเชิงตัวเลขอื่น ๆ เล็กน้อย) แต่ฉันไม่รู้ว่าคำจำกัดความของข้อผิดพลาดและความแตกต่างระหว่างสองข้อนี้เป็นอย่างไร

6
ตัวอย่างของฟังก์ชันต่อเนื่องที่ยากที่จะประมาณค่าด้วยพหุนาม
เพื่อวัตถุประสงค์ในการสอนฉันต้องการฟังก์ชั่นต่อเนื่องของตัวแปรเดี่ยวที่ "ยาก" เพื่อประมาณค่ากับชื่อพหุนามนั่นคือต้องมีพลังสูงมากในชุดพลังงานเพื่อ "พอดี" กับฟังก์ชั่นนี้ ฉันตั้งใจจะแสดงให้นักเรียนเห็นถึง "ขีด จำกัด " ของสิ่งที่สามารถทำได้ด้วยชุดพลัง ฉันคิดเกี่ยวกับ concocting บางอย่าง "ที่มีเสียงดัง" แต่แทนที่จะกลิ้งของฉันเองฉันเพียงแค่สงสัยว่ามีชนิดของมาตรฐาน "ฟังก์ชั่นที่ยากลำบาก" ที่ผู้คนใช้สำหรับการทดสอบขั้นตอนวิธีการประมาณ / การแก้ไขค่อนข้างคล้ายกับผู้ที่ฟังก์ชั่นการทดสอบการเพิ่มประสิทธิภาพที่มีจำนวนมาก local minima ที่อัลกอริธึมไร้เดียงสาติดอยู่ได้ง่าย ขอโทษถ้าคำถามนี้ไม่ได้เกิดขึ้นอย่างดี; โปรดเมตตาผู้ที่ไม่ใช่นักคณิตศาสตร์

1
เมื่อใดที่ Newton-Krylov ไม่ได้เป็นนักแก้ปัญหาที่เหมาะสม?
เมื่อเร็ว ๆ นี้ฉันได้ทำการเปรียบเทียบตัวแก้ปัญหาที่ไม่ใช่เชิงเส้นที่แตกต่างจาก scipyและรู้สึกประทับใจเป็นพิเศษกับตัวอย่างของNewton-Krylov ใน Scipy Cookbookซึ่งพวกเขาแก้สมการเชิงอนุพันธ์อันดับสองกับคำที่ไม่เป็นเชิงเส้นในโค้ดประมาณ 20 บรรทัด ฉันแก้ไขโค้ดตัวอย่างเพื่อแก้สมการปัวซองที่ไม่ใช่เชิงเส้น ( เรียกอีกอย่างว่าสมการปัวซอง - โบลซ์มันน์ดูหน้า 17 ในบันทึกเหล่านี้) สำหรับเซมิคอนดักเตอร์ heterostructures ซึ่งมีรูปแบบ d2φdx2- k ( x ) ( p ( x , ϕ ) - n ( x , ϕ ) + N+( x ) ) = 0d2φdx2-k(x)(พี(x,φ)-n(x,φ)+ยังไม่มีข้อความ+(x))=0 \frac{d^2\phi}{dx^2} - k(x) \left(p(x,\phi) - …

4
ฉันควรเช่าทรัพยากรคอมพิวเตอร์หรือซื้อคอมพิวเตอร์ของตัวเอง
เนื่องจากคำถามนี้เกี่ยวข้องกับการคำนวณฉันจึงตัดสินใจโพสต์ที่นี่ หวังว่ามันจะถูกมองว่าเหมาะสม ฉันเพิ่งเริ่มใช้โมเดลบรรยากาศและมหาสมุทรและฉันรู้ว่าฉันต้องการแกนหน่วยความจำและพื้นที่ดิสก์มากกว่าเดสก์ท็อปปัจจุบันของฉัน สถาบันของฉันมีบริการคำนวณประสิทธิภาพสูงที่นักวิจัยสามารถเช่าแกนในราคาคงที่ต่อหนึ่งคอร์ต่อเดือน ไม่มีใครในกลุ่มการวิจัยของฉันได้ใช้บริการนี้ แต่แทนที่จะใช้งานเครื่องทำให้อ้วนขึ้น อย่างไรก็ตามกลุ่มวิจัยอื่น ๆ ในกลุ่มกองทุนรวมและใช้ประโยชน์จากบริการคอมพิวเตอร์ ตอนนี้ฉันต้องตัดสินใจว่าจะซื้อเครื่องใหม่ที่มี RAM 60 GB หรือเช่าแกนจากบริการคอมพิวเตอร์ ฉันควรพิจารณาปัจจัยใดในการตัดสินใจนี้ ข้อดีของการใช้บริการคอมพิวเตอร์มากกว่าการซื้อเครื่องเฉพาะคืออะไร
16 hpc 

3
กลยุทธ์สำหรับการทดสอบหน่วยและการพัฒนาที่ขับเคลื่อนด้วยการทดสอบ
ฉันเป็นผู้สนับสนุนอย่างมากในการพัฒนาโดยใช้การทดสอบในการคำนวณทางวิทยาศาสตร์ ยูทิลิตี้ในทางปฏิบัติเป็นเพียงการส่ายและบรรเทาปัญหาคลาสสิกที่นักพัฒนาโค้ดรู้ได้อย่างแท้จริง อย่างไรก็ตามมีปัญหาในการทดสอบรหัสทางวิทยาศาสตร์ที่ไม่พบในการเขียนโปรแกรมทั่วไปดังนั้นข้อความ TDD จึงไม่มีประโยชน์อย่างยิ่งในการสอน ตัวอย่างเช่น: โดยทั่วไปคุณไม่ทราบคำตอบที่แน่นอนสำหรับปัญหาซับซ้อนที่กำหนดไว้สำหรับนิรนัยดังนั้นคุณจะเขียนข้อสอบได้อย่างไร ระดับของการเปลี่ยนแปลงขนาน ฉันเพิ่งพบข้อผิดพลาดที่การใช้งาน MPI เนื่องจากผลคูณของ 3 จะล้มเหลว แต่การทำงานหลายอย่างของ 2 รายการ นอกจากนี้กรอบการทดสอบทั่วไปดูเหมือนจะไม่เป็นมิตรกับ MPI มากเนื่องจากธรรมชาติของ MPI - คุณต้องทำการทดสอบไบนารีอีกครั้งเพื่อเปลี่ยนจำนวนงาน รหัสทางวิทยาศาสตร์มักจะมีชิ้นส่วนที่จับคู่กันอย่างพึ่งพาซึ่งกันและกัน เราทุกคนเห็นรหัสดั้งเดิมและเรารู้ว่าการดึงดูดให้ทำเช่นนั้นคือการสละการออกแบบที่ดีและใช้ตัวแปรระดับโลก บ่อยครั้งที่วิธีการเชิงตัวเลขอาจเป็น "การทดลอง" หรือ coder ไม่เข้าใจวิธีการทำงานอย่างสมบูรณ์และพยายามเข้าใจมันดังนั้นการคาดการณ์ผลลัพธ์จึงเป็นไปไม่ได้ ตัวอย่างการทดสอบที่ฉันเขียนสำหรับรหัสทางวิทยาศาสตร์: สำหรับผู้รวบรวมเวลาให้ใช้ ODE แบบง่ายๆด้วยโซลูชันที่แน่นอนและทดสอบว่าผู้รวมระบบของคุณแก้ไขได้ภายในความแม่นยำที่กำหนดและลำดับความแม่นยำนั้นถูกต้องโดยการทดสอบด้วยขนาดขั้นตอนที่แตกต่างกัน การทดสอบความเสถียรแบบไร้ศูนย์: ตรวจสอบว่าวิธีที่มี 0 ขอบเขต / เงื่อนไขเริ่มต้นยังคงอยู่ที่ 0 การทดสอบการแก้ไข: ให้ฟังก์ชันเชิงเส้นมั่นใจว่าการแก้ไขนั้นถูกต้อง การตรวจสอบความถูกต้องดั้งเดิม: แยกส่วนของรหัสในแอปพลิเคชันแบบดั้งเดิมที่ทราบว่าถูกต้องและดึงค่าที่ไม่ต่อเนื่องออกมาเพื่อใช้สำหรับการทดสอบ มันยังคงเกิดขึ้นบ่อยครั้งที่ฉันไม่สามารถหาวิธีทดสอบโค้ดที่กำหนดได้อย่างถูกต้องนอกเหนือจากการทดลองใช้ด้วยตนเองและข้อผิดพลาด คุณสามารถให้ตัวอย่างการทดสอบที่คุณเขียนสำหรับรหัสตัวเลขและ / หรือกลยุทธ์ทั่วไปสำหรับการทดสอบซอฟต์แวร์ทางวิทยาศาสตร์ได้หรือไม่
16 testing 

1
คุณจะแก้จุดบกพร่องรหัสตัวเลขสิ่งที่อาจเป็นแหล่งที่มาของข้อผิดพลาดการแกว่งนี้
ความเงียบสงบของความเข้าใจอย่างลึกซึ้งจะได้รับประสบการณ์ในแบบฟอร์มฉันแค่สงสัยว่าถ้าใครเคยเห็นบางสิ่งบางอย่างที่คล้ายกันนี้มาก่อน เนื้อเรื่องแสดงสภาพเริ่มต้น (สีเขียว) สำหรับสมการการแพร่ - การแพร่กระจายแล้วสารละลายที่การวนซ้ำ 200 (สีน้ำเงิน) และอีกครั้งที่การทำซ้ำ 400 (สีแดง) คำตอบของสมการการแพร่ - การแพร่กระจายระเบิดขึ้นหลังจากการทำซ้ำสองสามครั้ง จำนวนPéclet และสภาพ CFL เป็นที่พอใจ, C ≈ 0.0015ดังนั้นสมการควรจะมีเสถียรภาพ ฉันคาดว่าฉันมีข้อผิดพลาดในรหัสตัวเลขμ ≈ 0.07μ≈0.07\mu\approx0.07ค≈ 0.0015ค≈0.0015C\approx 0.0015 พื้นหลัง. discretisation คือความแตกต่างที่สำคัญสำหรับทั้งเงื่อนไข advection และ diffusion ฉันเชื่อว่านี่เป็นคำสั่งแรกของการพาและคำสั่งที่สองสำหรับการแพร่ ฉันใช้สิ่งนี้โดยใช้วิธีไฟไนต์วอลลุ่ม (เป็นครั้งแรก) ซึ่งค่าสัมประสิทธิ์ (สัมประสิทธิ์ความเร็วและการแพร่) ที่เซลล์ใบหน้าพบได้โดยการประมาณค่าเชิงเส้นจากค่าเฉลี่ยของเซลล์ ฉันใช้เงื่อนไขขอบเขตของ Robin กับพื้นผิวซ้ายและขวาและตั้งค่าฟลักซ์ที่ขอบเขตเป็นศูนย์ คุณจะดีบักรหัสตัวเลขอย่างไร มีใครบางคนเคยทำอะไรแบบนี้มาก่อนจะเป็นที่ไหนดีที่จะเริ่มมองหา? ปรับปรุง นี่คือบันทึกย่อสไตล์ "หนังสือห้องปฏิบัติการ" ส่วนตัวของฉันเกี่ยวกับการใช้ระเบียบวิธีไฟไนต์วอลลุ่มสำหรับสมการการแพร่ - การแพร่, http://danieljfarrell.github.io/FVM/ …

3
Python OSS ทางเลือกสำหรับ Matlab Neural Network Toolbox มี intercomparisons ใด?
ฉันต้องการเป็นอิสระจากซอฟต์แวร์เชิงพาณิชย์สำหรับงานทางวิทยาศาสตร์ของฉัน ฉันพบว่าการพึ่งพาแพคเกจเชิงพาณิชย์เช่น Matlab และกล่องเครื่องมือของมันไม่น่าพอใจเพราะฉันไม่รู้ว่าฉันจะสามารถเข้าถึง Matlab ในอนาคตได้หรือไม่และเพราะฉันไม่ชอบภาษา ดังนั้นฉันกำลังมองหาทางเลือก โชคดีที่ฉันใช้ภาษา Python ได้อย่างคล่องแคล่ว (และฉันชอบภาษานี้) และด้วย NumPy, SciPy, Matplotlib, Basemap และ NetCDF การอ่านและการเขียนตามปกติมันตอบสนองความต้องการส่วนใหญ่ของฉันได้ ส่วนใหญ่ - ฉันยังคงกลับไปที่ Matlab เมื่อฉันต้องการฝึกการดึงข้อมูลดาวเทียมโดยใช้ตัวรับส่งข้อมูลหลายเลเยอร์เช่นฟีดใช้เครือข่ายประสาทเทียม ไม่ผิดปกติกับซอฟต์แวร์โอเพนซอร์ซมีมากกว่าหนึ่งแพ็คเกจที่ทำเครือข่ายประสาทเทียม มากกว่าหนึ่งอย่างมาก: เมื่อไม่นานมานี้ฉันลองPyBrain "มีดทหารชาวสวิสสำหรับการสร้างเครือข่ายประสาท" แต่ฉันไม่ประสบความสำเร็จในการได้รับผลลัพธ์ที่น่าพอใจในช่วงเวลาสั้น ๆ (ทั้งเวลาพัฒนาและเวลาทำงาน) บางทีฉันอาจจะพยายามไม่มากพอหรือบางทีมันอาจจะไม่ตรงกับความต้องการของฉัน เพียงแค่ตอนนี้ผมค้นพบว่ามีเป็นแพคเกจที่เรียกว่าneurolabซึ่งดูแนวโน้ม: ที่ง่ายและมีประสิทธิภาพเครือข่ายห้องสมุดประสาทสำหรับงูหลามกับAPI เช่นโครงข่ายประสาทเทียม Toolbox (NNT) จาก MATLAB มีFFnetซึ่งเป็นโซลูชั่นการฝึกอบรมเครือข่ายนิวรัลฟีดไปข้างหน้าที่ง่ายและรวดเร็วสำหรับ python มีแบบง่าย ๆ มีพีชเป็นห้องสมุดสำหรับการคำนวณทางปัญญาและการเรียนรู้ของเครื่อง มีการเชื่อมโยง Python กับFANNซึ่งเป็นไลบรารีเครือข่ายประสาทเทียมด่วนซึ่งอธิบายว่าเป็นมาตรฐานจริงในโพสต์ StackOverflowนี้ อาจมีคนอื่น ๆ …

4
สม่ำเสมอกับตารางที่ไม่สม่ำเสมอ
มันอาจเป็นคำถามระดับนักเรียน แต่ฉันไม่สามารถพูดให้ตรงกับตัวเองได้ ทำไมการใช้กริดที่ไม่สม่ำเสมอในการคำนวณตัวเลขจึงมีความแม่นยำมากกว่า ฉันคิดในบริบทของบางวิธีการ จำกัด แตกต่างกันสำหรับการแหกตาของรูปแบบที่t) และถือว่าฉันสนใจในการแก้ปัญหาที่จุดที่AST} ดังนั้นผมจะเห็นว่าถ้าผมใกล้เคียงกับอนุพันธ์ที่สองเช่นบนตารางเครื่องแบบใช้สามประมาณจุดข้อผิดพลาดเป็นลำดับที่สอง2) จากนั้นฉันก็สามารถสร้างกริดที่ไม่สม่ำเสมอผ่านการแมปและหาค่าสัมประสิทธิ์สำหรับจุดสามจุดที่ใช้ในการประมาณอนุพันธ์ ฉันสามารถขยายเทย์เลอร์และได้รับขอบเขตสำหรับอนุพันธ์เป็นอันดับสองโดยที่x ∗ O ( h 2 ) O ( h 2 ) hยูเสื้อ( x , t ) = ux x( x , t )ยูเสื้อ(x,เสื้อ)=ยูxx(x,เสื้อ)u_t(x,t)=u_{xx}(x,t)x* * * *x* * * *x^{\ast}O ( h2)O(ชั่วโมง2)O(h^2)O ( h2)O(ชั่วโมง2)O(h^2)ชั่วโมงชั่วโมงhคือระยะทางบนกริดสม่ำเสมอที่ฉันได้รับการแม็พกับกริดที่ไม่สม่ำเสมอ การประมาณทั้งสองประกอบด้วยอนุพันธ์และมันไม่ชัดเจนสำหรับฉันว่าทำไมการแก้ปัญหาจะแม่นยำมากขึ้นในกริดที่ไม่สม่ำเสมอเนื่องจากมันขึ้นอยู่กับขนาดของอนุพันธ์ที่เกี่ยวข้องในการประมาณความคลาดเคลื่อน?

4
แถวที่สำคัญเทียบกับรูปแบบที่สำคัญของการฝึกอบรมคอลัมน์
ในการเขียนโปรแกรมการคำนวณเมทริกซ์หนาแน่นมีเหตุผลใดที่จะเลือกเลย์เอาต์แถวหลักของผังเหนือคอลัมน์หลัก? ฉันรู้ว่าขึ้นอยู่กับเลย์เอาต์ของเมทริกซ์ที่เลือกเราจำเป็นต้องเขียนโค้ดที่เหมาะสมเพื่อใช้หน่วยความจำแคชอย่างมีประสิทธิภาพเพื่อวัตถุประสงค์ด้านความเร็ว เลย์เอาต์แถวหลักดูเหมือนเป็นธรรมชาติและเรียบง่ายกว่า (อย่างน้อยสำหรับฉัน) แต่ไลบรารี่หลักเช่น LAPACK ซึ่งเขียนใน Fortran ใช้เลย์เอาต์หลักของคอลัมน์ดังนั้นจะต้องมีเหตุผลบางอย่างในการเลือกนี้
16 matrix  fortran 

2
Boost :: mpi หรือ C MPI สำหรับการใช้งานทางวิทยาศาสตร์ที่มีประสิทธิภาพสูง?
สิ่งที่ฉันไม่ชอบมากที่สุดเกี่ยวกับ MPI คือการจัดการกับประเภทข้อมูล (เช่น data maps / masks) เพราะมันไม่เหมาะกับ object เชิง C ++ boost::mpiอย่างไรก็ตามรองรับ MPI 1.1 จากเว็บไซต์ของพวกเขาเท่านั้น: boost :: mpi เป็นอินเทอร์เฟซที่ใช้งานง่ายของ C ++ ไปยังอินเตอร์เฟสการส่งข้อความมาตรฐาน… Boost.MPI สามารถสร้างประเภทข้อมูล MPI สำหรับประเภทที่ผู้ใช้กำหนดโดยใช้ไลบรารี Boost.Serialization มีใครมีประสบการณ์เกี่ยวกับboost::mpiการคำนวณทางวิทยาศาสตร์อย่างจริงจังบ้างไหม? คุณจะแนะนำหรือไม่ คุณเคยมีปัญหาใด ๆ (ปัญหาการปรับขนาด, ปัญหาคอมไพเลอร์, ข้อผิดพลาด, คุณสมบัติที่ไม่ได้ใช้งาน, ความต้องการคุณสมบัติ MPi 2.2 บางส่วน) หรือไม่? คุณสามารถแสดงความคิดเห็นเกี่ยวกับการใช้boost::mpiแทนการใช้ MPI C จาก C ++ ได้หรือไม่? คุณสามารถรวมทั้งสอง …
16 hpc  c++  mpi 

7
วิทยาศาสตร์คอมพิวเตอร์เกี่ยวข้องกับการเขียนโปรแกรมหรือไม่?
ฉันอ่านเกี่ยวกับวิทยาศาสตร์การคำนวณใน Wikipedia แต่ความเข้าใจของฉันยังไม่ชัดเจน วิทยาศาสตร์การคำนวณเกี่ยวข้องกับการเขียนโปรแกรมหรือไม่? วิทยาศาสตร์การคำนวณแตกต่างจากการคำนวณ_ ____เพียงใดซึ่งความว่างเปล่าอาจเป็นวินัย (วัสดุศาสตร์วิศวกรรมเคมีเคมีชีววิทยาและอื่น ๆ ) (ฉันจะทำวิทยาศาสตร์วัสดุการคำนวณ)

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