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

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

2
ห้องสมุดคณิตศาสตร์สำหรับ OpenCL?
ฉันกำลังมองหาข้อมูลจากใครก็ตามที่พยายามใช้ OpenCL ในรหัสทางวิทยาศาสตร์ มีใครลองเวียนนาCLบ้างไหม? ถ้าเป็นเช่นนั้นจะเปรียบเทียบกับcusp ได้อย่างไร OCLToolsเกี่ยวกับอะไร มันขึ้นอยู่กับสัญญาหรือไม่? ถ้าเป็นเช่นนั้นจะเป็นไปได้ไหมที่จะเริ่มเขียนเมล็ดทางคณิตศาสตร์ใน OpenCL?

6
คุณลักษณะใดที่ทำให้เห็นภาพ“ คุณภาพระดับมืออาชีพ”
ฉันเคยได้ยินคนพูดว่าแปลงที่ผลิตโดย ORIGIN มักจะดูขัดและ "เป็นมืออาชีพ" ในขณะที่แปลงที่ผลิตโดย Mathematica ไม่ทำเช่นนั้น อย่างไรก็ตามโปรแกรมการสร้างพล็อตส่วนใหญ่ค่อนข้างสามารถกำหนดค่าได้และมันก็เป็นเหตุผลว่าด้วยการตั้งค่าที่ถูกต้องสำหรับสิ่งต่างๆเช่นการเลือกที่ตั้งและการทำเครื่องหมายตัวเลือกแบบอักษรและสีการจัดตำแหน่งฉลากและอื่น ๆ ฉันควรจะสามารถ / matplotlib / Gnuplot / ฯลฯ ที่ดูดีเหมือนของที่มาจากต้นกำเนิด แต่มันหมายความว่าอย่างไรสำหรับตัวเลขที่จะเป็น "มืออาชีพ" ในบริบทนี้ กล่าวอีกนัยหนึ่งถ้าเป้าหมายของฉันคือการสร้างตัวเลขที่ดูดีที่สุดเท่าที่จะเป็นไปได้เพื่อรวมไว้ในบทความทางวิทยาศาสตร์ตัวเลือกการออกแบบอะไรที่แนะนำโดยทั่วไปสำหรับเป้าหมายนั้น เห็นได้ชัดว่าเราต้องเลือกชนิดของพล็อตที่เหมาะสมเช่นกราฟแท่งกับพล็อตกระจายและสเกลเชิงเส้นเทียบกับลอการิทึม แต่มันเป็นตัวเลือกที่เราคิดอยู่เสมอไม่ว่าจะใช้โปรแกรมการพล็อตใด ฉันสนใจสิ่งที่เราไม่ได้คิดตามปกติซึ่งมักจะถูกตั้งค่าตามค่าเริ่มต้นของโปรแกรมการวางแผน แต่อาจเปลี่ยนแปลงได้เพื่อปรับปรุงรูปลักษณ์ของพล็อต

11
สถานที่สำหรับเผยแพร่เอกสารที่เน้นซอฟต์แวร์
ซอฟต์แวร์เป็นส่วนพื้นฐานของวิทยาศาสตร์การคำนวณและได้รับการยอมรับมากขึ้นว่าเป็นส่วนสำคัญของบันทึกทางวิทยาศาสตร์ เมื่อพิจารณาถึงมูลค่าของการใช้รหัสที่มีอยู่และได้รับการทดสอบอย่างดีแล้วดูเหมือนว่าคุ้มค่าที่จะสื่อสารถึงการมีอยู่ของรหัสที่มีประโยชน์อย่างกว้างขวางที่สุดเท่าที่จะเป็นไปได้และให้เครดิตแก่ผู้สร้าง ในการตั้งค่าเชิงวิชาการหมายถึงการเผยแพร่เอกสารบางอย่างที่เน้นไปที่ซอฟต์แวร์เป็นหลัก เราสามารถเผยแพร่ผลงานทางวิชาการที่มีจุดสนใจหลักคือซอฟต์แวร์คอมพิวเตอร์ได้ที่ไหน เพื่อความชัดเจนอย่างสมบูรณ์ฉันหมายถึงงานที่อาจไม่มีคณิตศาสตร์อัลกอริธึมใหม่ ๆ - พวกเขาให้ความสำคัญกับซอฟต์แวร์ ฉันยังสนใจที่จะได้ยินจากผู้ที่ส่งเอกสารดังกล่าวไปยังวารสารเหล่านี้ว่าประสบการณ์เป็นอย่างไรและสถานที่ใดที่พวกเขาแนะนำ สรุปคำตอบที่ได้รับ: การทำธุรกรรมเกี่ยวกับซอฟต์แวร์ทางคณิตศาสตร์ การเขียนโปรแกรมทางวิทยาศาสตร์ SIAM Journal ในส่วนของซอฟต์แวร์คำนวณทางวิทยาศาสตร์ (SISC) ที่เก็บถาวรของซอฟต์แวร์เชิงตัวเลข การคำนวณการวิจัยแบบเปิด การสื่อสารฟิสิกส์คอมพิวเตอร์ ความก้าวหน้าในซอฟต์แวร์วิศวกรรม วารสารซอฟต์แวร์เชิงสถิติ วารสารทฤษฎีเคมีและการคำนวณ รหัสที่มาสำหรับชีววิทยาและการแพทย์ กรุณาหนึ่ง วารสารควอนตัมเคมีนานาชาติ ระบาดวิทยา การคำนวณทางวิทยาศาสตร์และวิศวกรรม วารสารเคมีเชิงคำนวณ การพัฒนาแบบจำลองธรณีศาสตร์ วารสารการวิจัยการเรียนรู้ของเครื่อง การคำนวณการโปรแกรมเชิงคณิตศาสตร์ วารสารซอฟต์แวร์โอเพนซอร์ซ

1
CUDA เทียบกับ OpenCL ปลายปี 2556
CUDA และ OpenCL เปรียบเทียบกันอย่างไรเมื่อปลายปี 2013 จากมุมมองของโปรแกรมเมอร์ กลุ่มของฉันคิดว่าจะพยายามใช้ประโยชน์จากการคำนวณด้วย GPU เราจะ จำกัด ตัวเองอย่างมากด้วยการเลือกฮาร์ดแวร์ที่รองรับ OpenCL แต่ไม่ใช่ CUDA หรือไม่ หากต้องการระบุให้ชัดเจนยิ่งขึ้นสมมติฐานต่อไปนี้ถูกต้องหรือไม่ ทุกสิ่งที่เป็นไปได้ใน CUDA ก็เป็นไปได้เช่นกันใน OpenCL ตราบใดที่เราไม่ได้ใช้ห้องสมุดงานที่กำหนดก็ไม่ง่ายอย่างที่คิด (หรือยากกว่า) ที่จะทำในสิ่งใดสิ่งหนึ่ง ข้อได้เปรียบหลักของ CUDA คือความพร้อมใช้งานของไลบรารี ทั้งสองมีการสนับสนุนที่ดีสำหรับแพลตฟอร์มหลักทั้งสาม (Win / OSX / Linux)
34 hpc  gpu  cuda  opencl 

8
ฉันจะแน่ใจได้อย่างไรว่าผลลัพธ์ของการจำลองและผลลัพธ์ในเอกสารของฉันตรงกันเสมอ?
ในหนึ่งในเอกสารของฉันฉันแสดงรายการผลลัพธ์ตัวเลขนอกเหนือจากตัวเลขบางอย่าง สิ่งที่ฉันต้องการจะทำคือตรวจสอบให้แน่ใจว่าผลลัพธ์ตัวเลขในเอกสารของฉันเห็นด้วยเสมอกับรหัส ตอนนี้ฉันเพิ่งคัดลอกผลลัพธ์เชิงตัวเลขจากผลลัพธ์การจำลองของฉันลงในกระดาษซึ่งง่ายมากและใช้เทคโนโลยีต่ำ แต่มีข้อผิดพลาดง่ายเพราะฉันสามารถคัดลอกผลลัพธ์ผิดพลาดหรือลืมซิงค์ผลลัพธ์กระดาษด้วย รหัสออก มีวิธีที่ดีในการเก็บผลลัพธ์ตัวเลขที่ฉันอ้างอิงในเอกสารของฉันให้สอดคล้องกับผลลัพธ์ที่สร้างโดยรหัสของฉันหรือไม่ (ที่นี่ฉันคิดว่าการใช้งานโค้ดนั้นทำได้ง่ายและใช้งานได้จริงทุกครั้งที่ฉันต้องการอัพเดทรายงาน) ผลลัพธ์เชิงตัวเลขเหล่านี้ไม่จำเป็นที่จะต้องยืมตัวไปเป็นแบบตาราง บางครั้งฉันมีตารางในต้นฉบับ แต่มากกว่าปกติผมได้พารามิเตอร์จำลองระบุว่าเป็นตัวเลขในสมการ ตัวอย่างจะเป็นสิ่งที่ชอบ: Y* * * *= ( y* * * *1, … , y* * * *n)y∗=(y1∗,…,yn∗)\begin{align} \mathbf{y}^{*} = (y_{1}^{*}, \ldots, y_{n}^{*}) \end{align} โดยที่ฉันต้องการแทนที่องค์ประกอบของเงื่อนไขเริ่มต้นด้วยพารามิเตอร์จริงที่ฉันใช้ในการจำลองที่ผสานระบบตัวเลขของสมการเชิงอนุพันธ์สามัญ การใช้ตารางสำหรับข้อมูลที่ใช้ครั้งเดียวเช่นตัวอย่างนี้ดูเหมือนว่ามากเกินไปและหมึกมากกว่าที่จำเป็นY* * * *y∗\mathbf{y}^{*} ฉันคิดว่าตัวเลขเป็นกรณีที่ง่ายกว่า: เมื่อใดก็ตามที่เอกสาร "สร้าง" (จากแหล่ง LaTeX, Markdown, RST ฯลฯ ) ให้เริ่มกระบวนการสร้างโดยการเรียกใช้รหัส อย่างไรก็ตามหากผู้คนมีข้อเสนอแนะที่ดีกว่าสำหรับการรักษาตัวเลขที่สร้างขึ้นโดยแบบจำลองของฉันในการซิงค์กับกระดาษของฉันฉันชอบที่จะได้ยินพวกเขา

6
มีวิธีง่ายๆในการแก้สมการชโรดิงเงอร์ที่ขึ้นกับตัวเลขหรือไม่?
ฉันต้องการเรียกใช้การจำลองแบบง่าย ๆ ของการกระเจิงของ wavepackets จากศักยภาพแบบง่าย ๆ ในมิติเดียว มีวิธีง่าย ๆ ในการแก้ตัวเลข TDSE ในมิติเดียวสำหรับอนุภาคเดี่ยวหรือไม่? ฉันรู้ว่าโดยทั่วไปแล้วการพยายามใช้วิธีการไร้เดียงสาเพื่อรวมสมการเชิงอนุพันธ์บางส่วนสามารถจบลงได้อย่างรวดเร็วเมื่อเกิดภัยพิบัติ ฉันกำลังมองหาอัลกอริทึมที่ มีเสถียรภาพเชิงตัวเลข ง่ายต่อการใช้งานหรือมีการใช้งานการเข้าถึงไลบรารีโค้ดได้ง่าย วิ่งเร็วพอสมควรและหวังว่า ค่อนข้างง่ายที่จะเข้าใจ ฉันอยากจะแนะนำวิธีการทางสเปกตรัมที่ค่อนข้างชัดเจนโดยเฉพาะอย่างยิ่งวิธีการที่น้อยกว่าการแก้สมการชโรดิงเงอร์ที่ไม่ขึ้นกับเวลาเช่นเคย อย่างไรก็ตามฉันสนใจวิธีหลอกหลอกที่ใช้ B-splines หรือ whatnot หากวิธีการนั้นมีศักยภาพที่ขึ้นกับเวลานั้นเป็นโบนัสแน่นอน แน่นอนว่าวิธีการดังกล่าวจะมีข้อเสียอยู่เสมอดังนั้นฉันจึงอยากได้ยินเกี่ยวกับสิ่งเหล่านั้น มันไม่ทำงานเมื่อไหร่? ข้อผิดพลาดทั่วไปคืออะไร มันสามารถผลักไปทางไหนและมันจะไม่ทางไหน?

3
วิธีที่ง่ายที่สุดในการติดตั้งแพ็กเกจหลามแบบโลคัลคืออะไร?
ฉันไม่ต้องการที่จะจัดการกับvirtualenvสำหรับการติดตั้ง Python ในท้องถิ่นฉันแค่ต้องการติดตั้งแพคเกจบางอย่างในพื้นที่โดยไม่ต้องจัดการกับPYTHONPATHตัวแปรสภาพแวดล้อมฉันจะทำอย่างไร
32 python  software 

2
การสั่นที่แปลกเมื่อแก้สมการการพาโดยความแตกต่างอัน จำกัด ด้วยเงื่อนไขขอบเขตของ Neumann ที่ปิดสนิท (การสะท้อนที่ขอบเขต)
ฉันพยายามที่จะแก้สมการการพาความร้อน แต่มีความผันผวนที่แปลกประหลาดปรากฏขึ้นในการแก้ปัญหาเมื่อคลื่นสะท้อนจากขอบเขต หากใครได้เห็นสิ่งประดิษฐ์นี้ก่อนที่ฉันจะสนใจที่จะรู้สาเหตุและวิธีการหลีกเลี่ยง! นี่คือ gif แบบเคลื่อนไหวเปิดในหน้าต่างแยกต่างหากเพื่อดูภาพเคลื่อนไหว (มันจะเล่นเพียงครั้งเดียวหรือไม่พร้อมกันในทันที! ขอให้สังเกตว่าการขยายพันธุ์ดูเหมือนจะมีเสถียรภาพสูงจนกระทั่งคลื่นเริ่มสะท้อนจากขอบเขตแรก คุณคิดว่าจะเกิดอะไรขึ้นที่นี่ ฉันใช้เวลาสองสามวันในการตรวจสอบรหัสของฉันและไม่พบข้อผิดพลาดใด ๆ มันแปลกเพราะมันดูเหมือนจะมีวิธีแก้ปัญหาที่แพร่กระจายสองอย่าง: หนึ่งบวกและลบหนึ่ง หลังจากการสะท้อนจากขอบเขตแรก การแก้ปัญหาดูเหมือนว่าจะเดินทางไปตามจุดตาข่ายที่อยู่ติดกัน รายละเอียดการใช้งานมีดังนี้ สมการการพาความร้อน ∂u∂t=v∂u∂x∂u∂t=v∂u∂x\frac{\partial u}{\partial t} = \boldsymbol{v}\frac{\partial u}{\partial x} โดยที่คือความเร็วในการแพร่กระจายvv\boldsymbol{v} Crank-Nicolson เป็นdiscretization ที่ไม่มีเงื่อนไข (ลิงก์ pdf) ที่ มีเสถียรภาพสำหรับสมการการพาความร้อนที่ให้มีการเปลี่ยนแปลงอย่างช้าๆในอวกาศ (มีส่วนประกอบความถี่ต่ำเท่านั้นเมื่อแปลงฟูริเยร์)u(x)u(x)u(x) discretization ฉันได้ใช้คือ ϕn+1j−ϕnjΔt=v[1−β2Δx(ϕnj+1−ϕnj−1)+β2Δx(ϕn+1j+1−ϕn+1j−1)]ϕjn+1−ϕjnΔt=v[1−β2Δx(ϕj+1n−ϕj−1n)+β2Δx(ϕj+1n+1−ϕj−1n+1)] \frac{\phi_{j}^{n+1} - \phi_{j}^{n}}{\Delta t} = \boldsymbol{v} \left[ \frac{1-\beta}{2\Delta x} \left( \phi_{j+1}^{n} - \phi_{j-1}^{n} \right) …

3
วิธีเลือกวิธีการแก้สมการเชิงเส้น
สำหรับความรู้ของฉันมี 4 วิธีในการแก้ระบบสมการเชิงเส้น (แก้ไขฉันหากมีมากขึ้น): หากเมทริกซ์ระบบเป็นเมทริกซ์จตุรัสแบบเต็มคุณสามารถใช้กฎของแครมเมอร์ คำนวณค่าผกผันหรือ pseudoinverse ของเมทริกซ์ระบบ ใช้วิธีการสลายตัวของเมทริกซ์ (การกำจัดเกาส์เซียนหรือจอร์แดนถือเป็นการสลายตัว LU) ใช้วิธีการวนซ้ำเช่นวิธีการไล่ระดับสีแบบคอนจูเกต ในความเป็นจริงคุณแทบไม่ต้องการแก้ไขสมการโดยใช้กฎของ Cramer หรือคำนวณค่า inverse หรือ pseudoinverse โดยเฉพาะอย่างยิ่งสำหรับเมทริกซ์มิติสูงดังนั้นคำถามแรกคือเมื่อต้องใช้วิธีการสลายตัวและวิธีวนซ้ำตามลำดับ ฉันเดาว่ามันขึ้นอยู่กับขนาดและคุณสมบัติของเมทริกซ์ของระบบ คำถามที่สองคือความรู้ของคุณวิธีการสลายตัวแบบใดหรือวิธีการวนซ้ำแบบใดที่เหมาะสมที่สุดสำหรับเมทริกซ์ของระบบในแง่ของความเสถียรเชิงตัวเลขและประสิทธิภาพ ยกตัวอย่างเช่นวิธีการไล่ระดับสีคอนจูเกตใช้เพื่อแก้สมการที่เมทริกซ์เป็นสมมาตรและบวกแน่นอนแม้ว่ามันจะสามารถนำไปใช้กับสมการเชิงเส้นใด ๆ โดยการแปลงเป็นข นอกจากนี้สำหรับเมทริกซ์แน่นอนที่เป็นบวกคุณสามารถใช้วิธีการสลายตัวของ Cholesky เพื่อค้นหาวิธีแก้ปัญหา แต่ฉันไม่รู้ว่าจะเลือกวิธี CG เมื่อใดและจะเลือกการสลายตัวของ Cholesky ได้อย่างไร ความรู้สึกของฉันคือเราควรใช้วิธี CG สำหรับเมทริกซ์ขนาดใหญ่A T A x = A T bA x = bAx=ข\mathbf{A}x=bATA x= ATขATAx=ATข\mathbf{A}^{\rm T}\mathbf{A}x=\mathbf{A}^{\rm T}b สำหรับเมทริกซ์รูปสี่เหลี่ยมผืนผ้าเราสามารถใช้ …

9
แหล่งข้อมูลที่ทันสมัยสำหรับการเรียนรู้ FEM
ฉันต้องเริ่มต้นด้วยวิธีไฟไนต์เอลิเมนต์ ฉันกำลังจะเริ่มอ่านคำตอบเชิงตัวเลขของสมการเชิงอนุพันธ์ย่อยโดยวิธีไฟไนต์เอลิเมนต์ของClaes Johnsonแต่มันลงวันที่ปี 1987 สองคำถาม: 1) มีแหล่งข้อมูลที่ดี / ตำราเรียน / e-books / บันทึกการบรรยายที่ดีในเรื่องนี้อยู่ที่ใดบ้าง? 2) ฉันอ่านหนังสือ 1987 หายไปมากแค่ไหน? ขอบคุณ

5
ความแตกต่างด้านประสิทธิภาพระหว่าง ATLAS และ MKL หรือไม่
ATLAS คือการแทนที่ BLAS / LAPACK ฟรีที่ปรับแต่งตัวเองไปยังเครื่องเมื่อรวบรวม MKL เป็นห้องสมุดเชิงพาณิชย์ที่จัดส่งโดย Intel ไลบรารีทั้งสองนี้เปรียบได้หรือไม่เมื่อเทียบกับประสิทธิภาพหรือ MKL มีความสามารถเหนือกว่าสำหรับงานบางอย่างหรือไม่? ถ้าเป็นเช่นนั้น

4
เหตุใดการอนุรักษ์ในพื้นที่จึงมีความสำคัญเมื่อแก้ไข PDE
วิศวกรมักยืนยันในการใช้วิธีการอนุรักษ์ในพื้นที่เช่นปริมาณ จำกัด ความแตกต่าง จำกัด แบบอนุรักษ์นิยมหรือวิธีการ Galerkin ที่ไม่ต่อเนื่องสำหรับการแก้ไข PDE มีอะไรผิดพลาดเมื่อใช้วิธีการที่ไม่อนุรักษ์ท้องถิ่น? โอเคดังนั้นการอนุรักษ์ในท้องถิ่นจึงมีความสำคัญสำหรับ PDE แบบไฮเพอร์โบลิกแล้ว PDEs รูปไข่ล่ะ

2
เมื่อใดควรใช้ log1p และ expm1
ฉันมีคำถามง่ายๆที่ยากสำหรับ Google (นอกเหนือจากสิ่งที่บัญญัติไว้ในสิ่งที่นักวิทยาศาสตร์คอมพิวเตอร์ทุกคนควรรู้เกี่ยวกับกระดาษคำนวณเลขทศนิยม ) เมื่อใดควรใช้ฟังก์ชันเช่นlog1pหรือexpm1ใช้แทนlogและexp? เมื่อใดที่ไม่ควรใช้ การใช้งานที่แตกต่างกันของฟังก์ชั่นเหล่านั้นแตกต่างกันอย่างไรในแง่ของการใช้งาน?

8
ระบบการจัดการเวิร์กโฟลว์ทางวิทยาศาสตร์
ทุกคนสามารถแนะนำระบบการจัดการเวิร์กโฟลว์ที่ดี (WMS) ให้ฉันโดยเฉพาะอย่างยิ่งใน Python ได้หรือไม่? จนถึงตอนนี้ฉันใช้ GNU Make อยู่แล้ว แต่มันแนะนำความซับซ้อนหลายระดับที่ฉันต้องการหลีกเลี่ยง WMS ที่ดีควรมีคุณสมบัติดังต่อไปนี้: รวมเข้ากับเครื่องมือบรรทัดคำสั่งและสคริปต์ Python ได้อย่างง่ายดาย ใช้งานง่ายและมีน้ำหนักเบา จัดการการอ้างอิง จัดเตรียมอินเตอร์เฟสบรรทัดคำสั่ง จัดเตรียมกลไกการบันทึก (ไม่บังคับ) ให้ข้อมูลที่มา ฉันรู้ว่า WMS เป็นที่นิยมอย่างมากในด้านชีวสารสนเทศ (เช่นGalaxy ) แต่ฉันกำลังมองหาบางสิ่งที่กว้างกว่า
30 software  python 

7
ทางเลือกในวารสารฟิสิกส์การคำนวณ
สมุดรายวันของฟิสิกส์เชิงคำนวณเป็นทางออกสำคัญสำหรับวิทยาศาสตร์การคำนวณในอดีตและฉันได้เผยแพร่ก่อนหน้านี้ เพื่อประโยชน์ของเหล่านั้น (เช่นฉัน) ที่ได้ลงนามในคว่ำบาตรเอลส์ , สิ่งที่ไม่ใช่เอลส์วารสารจะเป็นสถานที่ที่เหมาะสมในการเผยแพร่บทความที่จะได้รับการส่งไปยังวารสารฟิสิกส์? ทางเลือกที่ดีควร: ทับซ้อน (อย่างน้อยบางส่วน) ในเนื้อหาของ JCP มีชื่อเสียงที่ดี ไม่ถูกเผยแพร่โดย Elsevier หมายเหตุ : เมื่อฉันพูดว่า "ชื่อเสียง" ฉันไม่ได้หมายถึงปัจจัยกระทบ โปรดดูบทความนี้ที่แสดงให้เห็นว่าทั้งสองมีความสัมพันธ์ไม่ดีในด้านนี้

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