คำถามติดแท็ก libraries

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

17
เป็นเรื่องปกติที่จะไม่ใช้ไลบรารีสำหรับอัลกอริธึมเชิงตัวเลขมาตรฐานและทำไม
จำนวนมากของขั้นตอนวิธีเชิงตัวเลข (บูรณาการความแตกต่างของการแก้ไขฟังก์ชั่นพิเศษอื่น ๆ ) ที่มีอยู่ในห้องสมุดการคำนวณทางวิทยาศาสตร์เช่นGSL แต่ฉันมักจะเห็นรหัสด้วยการใช้งาน "มือรีด" ของฟังก์ชั่นเหล่านี้ สำหรับโปรแกรมขนาดเล็กที่ไม่ได้มีไว้สำหรับการเผยแพร่สู่สาธารณะเป็นเรื่องธรรมดาในหมู่นักวิทยาศาสตร์ด้านการคำนวณที่จะใช้อัลกอริธึมเชิงตัวเลขด้วยตัวคุณเอง (ซึ่งฉันหมายถึงการคัดลอกหรือถอดความจากเว็บไซต์ ถ้าเป็นเช่นนั้นมีเหตุผลพิเศษไหมที่จะหลีกเลี่ยงการเชื่อมโยงกับบางสิ่งบางอย่างเช่น GSL หรือเป็น "ประเพณี" มากกว่าสิ่งอื่นใดอีกหรือไม่ ฉันถามเพราะฉันเป็นแฟนตัวยงของการใช้รหัสซ้ำซึ่งจะแนะนำว่าฉันควรพยายามใช้การใช้งานที่มีอยู่เมื่อเป็นไปได้ แต่ฉันสงสัยว่ามีเหตุผลที่หลักการมีประโยชน์น้อยกว่าในการคำนวณทางวิทยาศาสตร์มากกว่าในการเขียนโปรแกรมทั่วไปหรือไม่ ลืมพูดถึง: ฉันถามเฉพาะเกี่ยวกับ C และ C ++ ตรงข้ามกับภาษาเช่น Python ที่มีประโยชน์ชัดเจน (ความเร็วของการดำเนินการ) เพื่อใช้ห้องสมุด
54 libraries  c 

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

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

2
ห้องสมุดสำหรับการแก้ปัญหาระบบเชิงเส้นหร็อมแหร็ม
มีห้องสมุดที่แตกต่างกันจำนวนมากที่ช่วยแก้ระบบสมการเชิงเส้นหร็อมแหร็ม แต่ฉันพบว่ามันยากที่จะเข้าใจว่าความแตกต่างคืออะไร เท่าที่ผมสามารถบอกได้ว่ามีสามแพคเกจที่สำคัญ: Trilinos , PETScและIntel MKL พวกเขาสามารถแก้เมทริกซ์แบบเบาบางพวกมันทั้งหมดนั้นเร็ว (เท่าที่ฉันสามารถบอกได้ว่าฉันไม่สามารถหาเกณฑ์มาตรฐานที่แข็งแกร่งสำหรับพวกมัน) และพวกมันทั้งหมดสามารถต่อขนานกันได้ สิ่งที่ฉันไม่สามารถค้นหาได้คือความแตกต่าง ดังนั้นความแตกต่างระหว่างระบบเชิงเส้นที่กระจัดกระจายแตกต่างกันคืออะไร?

10
ไลบรารี C ++ tensor ที่รวดเร็วและน้ำหนักเบาสำหรับโค้ดมิติผู้ไม่เชื่อเรื่องพระเจ้า
ฉันกำลังมองหาไลบรารี C ++ tensor ที่สนับสนุนโค้ดมิติผู้ไม่เชื่อเรื่องพระเจ้า โดยเฉพาะฉันต้องดำเนินการตามแต่ละมิติ (สูงสุด 3) เช่นการคำนวณผลรวมถ่วงน้ำหนัก ขนาดคือพารามิเตอร์เทมเพลต (และทำให้ค่าคงที่เวลาคอมไพล์) ข้อ จำกัด อีกประการคือห้องสมุดควรมีน้ำหนักเบาดังนั้นจึงค่อนข้าง Eigen / Boost-style กว่า Trilinos / PETSc ข้อเสนอแนะใด ๆ หมายเหตุ: ฉันได้ดูที่ Eigen และคิดว่ามันเกือบจะพอดีกับโปรไฟล์อย่างแน่นอนถ้ามันไม่ได้ จำกัด อยู่เพียงแค่เทนเซอร์ 2D หากฉันเข้าใจผิดโดยโปรดแก้ไขให้ถูกต้อง
20 c++  libraries  tensor 

4
มีห้องสมุดเอนกประสงค์สำหรับการปรับตารางตาข่ายแบบปรับโครงสร้างหรือไม่?
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ Adaptive mesh refinement (AMR) เป็นเทคนิคที่ใช้กันทั่วไปในการจัดการกับปัญหาของสเกลอวกาศที่หลากหลายในการแก้ปัญหาเชิงตัวเลขของ PDE มีไลบรารีวัตถุประสงค์ทั่วไปสำหรับ AMR บนกริดที่มีโครงสร้างอย่างไร เป็นการดีที่ฉันต้องการบางสิ่งบางอย่างในจิตวิญญาณของ PETSc ที่ห้องสมุดจัดการเพียงตาข่ายแบบปรับตัวและฉันให้ฟิสิกส์และการแยกส่วน (ความแตกต่าง / ปริมาณ / องค์ประกอบ) ห้องสมุดที่เหมาะจะเป็น แบบแยกส่วน : ไม่บอกว่าฉันจะเขียนรหัสหรือโครงสร้างข้อมูลของฉันมากเกินไป ทั่วไป : ไม่สนใจว่าฉันใช้การแยกประเภทแบบใด มีประสิทธิภาพ : ไม่เสียค่าใช้จ่ายมากเกินไป ขนานและปรับขนาดได้สูง ไลบรารีที่เหมาะสมกับชุดย่อยของเกณฑ์เหล่านี้จะยังคงเป็นที่สนใจ ภาคผนวก : ฉันรู้ว่าแพ็คเกจ AMR ที่กว้างขวางของDonna Calhounแต่ฉันไม่รู้ว่าอันไหน (ถ้ามี) ที่ตรงกับเกณฑ์ด้านบน ดังนั้นฉันจึงสนใจที่จะได้ยินจากผู้ที่มีประสบการณ์จริงกับแพ็คเกจเพิ่มเติมหนึ่งหรือ (ยังดีกว่า) แพ็คเกจเกี่ยวกับวิธีที่พวกเขาวัดค่าในเงื่อนไขเหล่านั้น

2
ไลบรารีใดบ้างที่มีการสนับสนุนระดับสูงสำหรับ multigrid
ฉันวางแผนที่จะใช้หลายค่าเพื่อคำนวณค่าลักษณะเฉพาะและเวกเตอร์และฉันสังเกตเห็นว่า PETSc มีการรองรับหลายระดับในระดับสูง เอกสาร PETSc บอกว่าไม่ควรใช้ส่วนของ PETSc เพราะมันจะถูกแทนที่ในไม่ช้า ห้องสมุดอื่นใดที่มีการสนับสนุนระดับสูงสำหรับ multigrid และคร่าว ๆ ว่า PETSc จะปล่อยการสนับสนุน multigrid ใหม่เร็ว ๆ นี้?

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

5
C ++ หรือ Python สำหรับการพัฒนาไลบรารี CFD
คุณจะพูดว่าอะไรคือข้อดี / ข้อเสียของสองวิธีในการเขียนโค้ดไลบรารีทั่วไป (finite volume, fem, dg) สำหรับกลศาสตร์ต่อเนื่องของการคำนวณ นี่คือสิ่งที่ฉันเห็นตอนนี้ดังนั้นโปรดให้ประสบการณ์ของคุณเองและอย่าทำให้ฉันเป็นประกาย :): 1) C ++: การเขียนโปรแกรมทั่วไป, ฟังก์ชั่นเสมือนจริง, การบรรทุกเกินพิกัด, ความเร็ว ... : เครื่องมือ genreic + OOP ทั้งหมดที่มีอยู่เพื่อสร้างสิ่งที่คุณต้องการ ห้องสมุดระดับต่ำส่วนใหญ่มีอยู่ (ไม่มีการพัฒนาด้านวิทยาศาสตร์และวิศวกรรมที่กว้างขวางเช่นห้องสมุดสำหรับ Python) 2) Python + wrappers สำหรับการคำนวณแบบขนาน (pyOpenCL และอื่น ๆ ) จำนวนมากรองรับ libs หลากหลายชนิด โค้ดที่คุณคิด: การติดตั้งใช้งานเสร็จเร็วมาก เวลาดำเนินการช้าลง หากคุณต้องการเขียนโค้ดเฟรมเวิร์กที่รองรับวิธีการต่าง ๆ ทำงานกับรูปทรงเรขาคณิตและปัญหาที่ซับซ้อนคุณจะเลือกอะไรและทำไม

1
แทนที่การรวม QuasiMonteCarlo ของ Mathematica ใน C ++
ฉันมีโปรแกรม Mathematica ซึ่งทำหน้าที่อินทิกรัลบางตัวใน 3 หรือ 4 มิติโดยใช้QuasiMonteCarloวิธีการ ปัญหาคือใช้เวลานานในการรันจนถึงจุดที่การคำนวณบางอย่างไม่สามารถดำเนินการได้ในเวลางานสูงสุดที่มีอยู่ในคลัสเตอร์ HPC ของเรา ดังนั้นฉันกำลังพิจารณาที่จะเขียนโปรแกรมใหม่ใน C ++ ซึ่งฉันสงสัยว่าจะเร่งความเร็วขึ้นด้วยปัจจัยใหญ่ ฉันดูเอกสาร GSL และในขณะที่มีส่วนในลำดับ quasirandomและการรวม MC ปกติฉันไม่เห็นอะไรเลยที่นำมารวมกัน นอกจากนี้การค้นหาของ Google หรือสองรายการก็ไม่ทำให้เกิดสิ่งใด ๆ ที่ดูเหมือนจะเป็นการติดตั้งที่เชื่อถือได้ ตัวเลือกของฉันสำหรับการติดตั้ง QMC ใน C ++ มีการทดสอบอย่างดีมีอะไรบ้าง เพื่อประโยชน์ของความมั่นคงฉันต้องการใช้บางสิ่งบางอย่างใกล้เคียงกับวิธี Halton-Hammersley-Wozniakowski ที่ Mathematica ดำเนินการหากเป็นตัวเลือก

3
การใช้อัลกอริทึมเมทริกซ์ tridiagonal ที่มีประสิทธิภาพ
ฉันกำลังแก้ปัญหาทางกายภาพโดยใช้ชุดตัวเลขโดยปริยาย สิ่งนี้ทำให้ฉันแก้สมการเชิงเส้นด้วยเมทริกซ์สามเหลี่ยม ฉันเขียนรหัสอัลกอริทึมนี้จาก Wikipedia ฉันสงสัยว่ามีห้องสมุดที่มีประสิทธิภาพที่ช่วยให้แก้สมการประเภทนี้ด้วยวิธีที่เหมาะสมหรือไม่ สิ่งสำคัญคือเมทริกซ์นั้นจะเปลี่ยนแปลงตัวเองเฉพาะเมื่อพารามิเตอร์ของระบบมีการเปลี่ยนแปลงดังนั้นฉันจึงมีโอกาสในการคำนวณขั้นตอนวิธีอัลกอริทึมใหม่สำหรับโบนัสรอบการแสดงที่ดี ฉันใช้ C ++

3
ฉันกำลังมองหาไลบรารีกราฟแบบไดนามิกแบบขนานใน C ++
สวัสดีชุมชน Scicomp ฉันทำงานในส่วนของอัลกอริธึมกราฟโดยใช้เฟรมเวิร์กเช่นNetworkX (Python), JUNGและYFiles (Java) ตอนนี้ฉันกำลังเข้าสู่การคำนวณแบบขนานและประสิทธิภาพสูง สำหรับโครงการใหม่ฉันกำลังมองหาไลบรารีกราฟ C ++ ที่มีคุณสมบัติดังต่อไปนี้: มีอินเทอร์เฟซที่ใช้งานง่ายที่ช่วยให้การพัฒนาอัลกอริทึม รองรับการทำงานแบบไดนามิก: เช่นการแทรกและการลบโหนด / ขอบโดยพลการ รองรับการขนาน: เช่นป้องกันโปรแกรมเมอร์จากปัญหาที่เกิดขึ้นกับมัลติเธรด มีค่าใช้จ่ายหน่วยความจำต่ำและเหมาะสำหรับการคำนวณประสิทธิภาพสูง โปรดแนะนำห้องสมุดบางแห่งและหารือเกี่ยวกับเกณฑ์เหล่านี้รวมถึงข้อดีข้อเสีย

1
ห้องสมุดสำหรับการแปลงฟูริเยร์บนโครงตาข่ายรูปสามเหลี่ยม
ฉันกำลังมองหาการใช้งาน Fourier transform (DFT) แบบไม่ต่อเนื่องอย่างรวดเร็วพอสมควรบนโครงตาข่ายรูปสามเหลี่ยมสองมิติหรือหกเหลี่ยม ฉันขอขอบคุณตัวชี้ไปยังการใช้งาน (โดยเฉพาะอย่างยิ่งคนที่ใช้งานได้ง่ายจาก Python หรือ Mathematica) และคำอธิบายถึงวิธีการลดปัญหานี้เป็น 1D DFT ซึ่งสร้างขึ้นในหลาย ๆ ระบบ

4
กำลังมองหาลำดับที่ 8 ของ Runge-Kutta ใน C / C ++
ฉันต้องการใช้วิธีการสั่งซื้อลำดับที่ 8 ของ Runge-Kutta (89) ในแอปพลิเคชันกลศาสตร์ท้องฟ้า / แอสโตรไดนามิคส์ที่เขียนด้วยภาษา C ++ โดยใช้เครื่อง Windows ดังนั้นฉันจึงสงสัยว่าใครจะรู้ว่ามีไลบรารี / การนำไปใช้ที่ดีซึ่งจัดทำเอกสารและใช้งานได้ฟรี? มันก็โอเคถ้ามันเขียนใน C ตราบใดที่ไม่มีปัญหาในการคอมไพล์ จนถึงตอนนี้ฉันได้พบห้องสมุดนี้ (mymathlib)แล้ว รหัสดูเหมือนว่าใช้ได้ แต่ฉันไม่พบข้อมูลเกี่ยวกับสิทธิ์ใช้งาน คุณสามารถช่วยฉันด้วยการเปิดเผยตัวเลือกที่คุณอาจรู้จักและเหมาะสมกับปัญหาของฉัน แก้ไข: ฉันเห็นว่าไม่มีรหัสแหล่ง C / C ++ มากมายตามที่คาดไว้ ดังนั้นเวอร์ชัน Matlab / Octave ก็ใช้ได้เช่นกัน (ยังต้องใช้งานได้ฟรี)

2
ไลบรารีแบบขนานหน่วยความจำที่แบ่งใช้ตามภารกิจใน Scientific Computing
ในช่วงไม่กี่ปีที่ผ่านมาห้องสมุด / โครงการซอฟต์แวร์หลายแห่งปรากฏว่ามีรูปแบบหรือรูปแบบอื่น ๆ ของการใช้งานร่วมกันของหน่วยความจำที่ใช้ข้อมูลร่วมกันแบบขนาน แนวคิดหลักคือแทนที่จะเขียนโค้ดแบบเธรดอย่างชัดเจนโปรแกรมเมอร์ใช้อัลกอริธึมของพวกเขาเป็นงานที่ต้องพึ่งพาระหว่างกันซึ่งจะถูกกำหนดเวลาแบบไดนามิกโดยมิดเดิลแวร์จุดประสงค์ทั่วไปบนเครื่องหน่วยความจำที่ใช้ร่วมกัน ตัวอย่างของห้องสมุดดังกล่าวคือ: QUARK : เริ่มแรกออกแบบมาสำหรับไลบรารีพีชคณิตเชิงเส้นแบบขนานของMAGMAดูเหมือนว่าจะถูกใช้สำหรับวิธีการ Multipole แบบขนานแบบขนานเช่นกัน Cilkเดิมโครงการ MIT-based สนับสนุนในขณะนี้โดย Intel นำมาใช้เป็นภาษา / นามสกุลคอมไพเลอร์ที่ C ใช้ในCilkchessซอฟต์แวร์คอมพิวเตอร์หมากรุกและทดลองใน FFTW SMP superscalar : พัฒนาที่ Barcelona Supercomputing Center ซึ่งคล้ายกับ Cilk ในหลาย ๆ ด้านตาม#pragmaส่วนขยาย StarPU : "codelets" ซึ่งคล้ายกับห้องสมุดซึ่งสามารถรวบรวมและกำหนดเวลาสำหรับสถาปัตยกรรมที่แตกต่างกันหลายแห่งรวมถึง GPU งาน OpenMP: ตั้งแต่เวอร์ชัน 3.0, OpenMP แนะนำ "งาน" ที่สามารถกำหนดเวลาแบบอะซิงโครนัส (ดูส่วนที่ 2.7 ของข้อกำหนด) …

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