ตลาด Matrix เป็นรูปแบบที่แย่มากสำหรับการอ่านแบบขนานดังนั้นจึงเป็นการดีกว่าที่จะประมวลผลล่วงหน้าเป็นรูปแบบขนานที่ดีกว่า ขนาดเมทริกซ์ของคุณมีขนาดเล็กมากเพื่อให้ประสิทธิภาพการทำงานที่ไม่เป็นปัญหา แต่สิ่งที่ง่ายที่สุดและทั่วไปมากที่สุดคือการใช้งูหลามหรือ Matlab / คู่ที่จะเขียนไฟล์ตลาดเมทริกซ์ในรูปแบบไบนารี PETSc MatLoad()
ซึ่งสามารถอ่านได้อย่างมีประสิทธิภาพในแบบคู่ขนานโดยใช้ ตัวอย่างเช่นคุณสามารถใช้รหัส Python นี้สำหรับการประมวลผลล่วงหน้า (เพิ่ม$PETSC_DIR/bin/pythonscripts
ในของคุณPYTHONPATH
)
import scipy.io, PetscBinaryIO
A = scipy.io.mmread('thematrix.mtx')
PetscBinaryIO.PetscBinaryIO().writeMatSciPy(open('petscmatrix','w'), A)
คุณยังสามารถเขียนเวกเตอร์ไปยังไฟล์ได้ในเวลานี้ หากคุณต้องการอ่านและแก้ไขระบบคุณสามารถใช้src/ksp/ksp/examples/tutorials/ex10.c
(พร้อมตัวเลือก-f petscmatrix
ในการอ่านไฟล์ไบนารีที่คุณเพิ่งเขียน)
ในแอปพลิเคชันจริงคุณควรหลีกเลี่ยงเวิร์กโฟลว์ที่เกี่ยวข้องกับการเขียนไฟล์ลงดิสก์ในทุกรูปแบบ มันเป็นการดียิ่งกว่าที่จะรวบรวมเมทริกซ์ในแบบคู่ขนานโดยใช้การแทนโดเมนแบบแยกส่วนของปัญหา ตัวอย่างส่วนใหญ่ใน PETSc เขียนด้วยวิธีนี้