Devito เป็นแพ็คเกจ Python ที่ใช้การคำนวณลายฉลุที่ได้รับการปรับปรุง (เช่น ความแตกต่างอันจำกัด การประมวลผลภาพ การเรียนรู้ของเครื่อง) จากคำจำกัดความปัญหาเชิงสัญลักษณ์ระดับสูง Devito สร้างบน SymPy และใช้การสร้างโค้ดอัตโนมัติและการคอมไพล์แบบทันเวลาเพื่อรันเคอร์เนลการคำนวณที่ได้รับการปรับปรุงบนแพลตฟอร์มคอมพิวเตอร์หลายเครื่อง รวมถึง CPU, GPU และคลัสเตอร์ดังกล่าว
Devito จัดเตรียมภาษาที่ใช้งานได้เพื่อใช้ตัวดำเนินการที่ซับซ้อน ซึ่งสามารถประกอบด้วยการคำนวณลายฉลุ เงื่อนไขขอบเขต การดำเนินการแบบกระจัดกระจาย (เช่น การประมาณค่า) และอื่นๆ อีกมากมาย กรณีการใช้งานทั่วไปคือวิธีการผลต่างอันจำกัดที่ชัดเจนสำหรับการประมาณสมการเชิงอนุพันธ์บางส่วน ตัวอย่างเช่น ตัวดำเนินการแพร่กระจายแบบ 2 มิติอาจนำไปใช้กับ Devito ได้ดังต่อไปนี้
>> > grid = Grid ( shape = ( 10 , 10 ))
>> > f = TimeFunction ( name = 'f' , grid = grid , space_order = 2 )
>> > eqn = Eq ( f . dt , 0.5 * f . laplace )
>> > op = Operator ( Eq ( f . forward , solve ( eqn , f . forward )))
Operator
สร้างโค้ดระดับต่ำจากคอลเลกชัน Eq
ที่เรียงลำดับ (ตัวอย่างด้านบนใช้สำหรับสมการเดียว) รหัสนี้อาจถูกรวบรวมและดำเนินการด้วย
>> > op ( t = timesteps , dt = dt )
ความซับซ้อนของโอ Operator
แทบไม่มีขีดจำกัด -- คอมไพเลอร์ Devito จะวิเคราะห์อินพุต ตรวจจับ และใช้การปรับให้เหมาะสม (รวมถึงการทำงานแบบขนานโหนดเดียวและหลายโหนด) โดยอัตโนมัติ และในที่สุดจะสร้างโค้ดที่มีการวนซ้ำและนิพจน์ที่เหมาะสม
คุณสมบัติที่สำคัญ ได้แก่ :
วิธีที่ง่ายที่สุดในการลองใช้ Devito คือผ่าน Docker โดยใช้คำสั่งต่อไปนี้:
# get the code
git clone https://github.com/devitocodes/devito.git
cd devito
# start a jupyter notebook server on port 8888
docker-compose up devito
หลังจากรันคำสั่งสุดท้ายข้างต้น เทอร์มินัลจะแสดง URL เช่น https://127.0.0.1:8888/?token=XXX
คัดลอกและวาง URL นี้ลงในหน้าต่างเบราว์เซอร์เพื่อเริ่มเซสชันสมุดบันทึก Jupyter ซึ่งคุณสามารถอ่านบทช่วยสอนที่มาพร้อมกับ Devito หรือสร้างสมุดบันทึกของคุณเองได้
ดูคำแนะนำในการติดตั้งโดยละเอียดและตัวเลือกอื่นๆ ที่นี่ หากคุณพบปัญหาระหว่างการติดตั้ง โปรดดูปัญหาการติดตั้งที่เราพบในอดีต
หากต้องการเรียนรู้วิธีใช้ Devito นี่เป็นจุดเริ่มต้นที่ดี พร้อมด้วยตัวอย่างและบทช่วยสอนมากมาย
เว็บไซต์ยังให้การเข้าถึงข้อมูลอื่น ๆ รวมถึงเอกสารและคำแนะนำในการอ้างอิงถึงเรา
คำถามที่พบบ่อยบางส่วนจะกล่าวถึงที่นี่
หากคุณสนใจในเรื่องใดเรื่องหนึ่งดังต่อไปนี้
ถ้าอย่างนั้นคุณควรดู README นี้
หากคุณใช้ Devito เราต้องการรับฟังจากคุณ ไม่ว่าคุณกำลังเผชิญกับปัญหาหรือเพียงแค่ลองใช้งาน เข้าร่วมการสนทนาได้
สมุดบันทึก jupyter บทช่วยสอนมีให้ใช้งานแบบโต้ตอบได้ที่ jupyterhub เครื่องผูกสาธารณะ