I suspect that you could probably also manage it with GIMP/guile, but I don't suspect it would be particularly pleasant.
If you just want to do basic conversion ignoring layers, it's quite easy:
for f in *.psd; do
convert "$f" "${f%%.psd}.png"
done find . -iname "*.psd" -print0 | xargs -0 -P 4 -n 1 -I I convert I I.png
For best results, change the number "4" in the above command to the number of cores you have. find . -iname "*.psd" -print0 | parallel -0 convert '{}' '{.}.png'