Matrix Market, paralel olarak okumak için korkunç bir formattır, bu nedenle daha iyi bir paralel formata önişleme yapmak daha iyidir. Matris boyutunuz son derece küçüktür, bu nedenle performans bir sorun değildir, ancak en kolay ve en genel şey, Matrix Market dosyasını PETSc ikili biçiminde yazmak için Pytc veya Matlab / Octave'yi kullanarak paralel olarak verimli bir şekilde okunabilir MatLoad()
. Örneğin, ön işleme için bu Python kodu kullanabilirsiniz (ekleme $PETSC_DIR/bin/pythonscripts
adresinden Müşteri PYTHONPATH
)
import scipy.io, PetscBinaryIO
A = scipy.io.mmread('thematrix.mtx')
PetscBinaryIO.PetscBinaryIO().writeMatSciPy(open('petscmatrix','w'), A)
Ayrıca, dosyaya şu anda bir vektör de yazabilirsiniz. Sadece sistemi okumak ve çözmek istiyorsanız, kullanabilirsiniz src/ksp/ksp/examples/tutorials/ex10.c
( -f petscmatrix
az önce yazdığınız ikili dosyayı okuma seçeneğiyle ).
Gerçek bir uygulamada, herhangi bir biçimde diske dosya yazmayı içeren bir iş akışından kaçınmalısınız. Sorunun etki alanı ile ayrıştırılmış bir temsilini kullanarak matrisi paralel olarak birleştirmek çok daha iyidir. PETSc'deki örneklerin çoğu bu şekilde yazılmıştır.