Trên cụm HPC, tôi đang cố chạy nhiều tập lệnh bash ( permute2.sh
) từ 1 tập lệnh bash bằng GNU song song, tuy nhiên nó không hoàn thành mọi công việc. Nó ngẫu nhiên hoàn thành một công việc, trong khi nó bị mắc kẹt làm việc khác.
permute1.sh:
PROCS=144
permuations=1000
seq 1 $permuations | parallel -j $PROCS sh permute2.sh {}
permute2.sh (lấy 100 dòng ngẫu nhiên từ một tệp và thực hiện một số hành động trên đó để hoán vị)
id=$1
randomlines=100
awk 'BEGIN{srand();} {a[NR]=$0}
END{for(I=1;I<='$randomlines';I++){x=int(rand()*NR);print a[x];}}'
FILE.txt > results/randomlines.$id.txt
# do stuff with randomlines.$id.txt..
Khi tôi chạy, permute1.sh
tôi có thể thấy nó tạo 144 tệp, cho mỗi cpu 1 (Randomlines.1.txt - Randomlines.144.txt), nhưng hầu hết chúng đều trống và ngừng hoạt động, và một số đã hoàn thành. Tôi đang làm gì sai?
Bạn có đang chạy công việc này như một phần của tệp bó trên cụm của mình không? Có giới hạn nào được đặt bởi trình quản lý tài nguyên giới hạn số lượng quy trình hoặc tệp bạn có thể thực thi không?
—
jsbillings
Tôi đã thử nghiệm các chương trình của bạn trên máy tính xách tay của tôi và nó đã hoàn thành không có vấn đề. Vì vậy, nó có khả năng là một vấn đề giới hạn trong hệ thống của bạn. Tôi đoán sẽ được xử lý tập tin. Sử dụng --joblog logfile để xem những công việc thất bại. Sử dụng --retries 3 để thử một công việc thất bại 3 lần.
—
Ole Tange
Khi tôi chỉ 'qsub' các công việc, tất cả đều được hoàn thành một cách hoàn hảo. vì vậy tôi đã làm cho nó hoạt động ngay bây giờ ... Thực sự phải có một số hạn chế, nhưng tôi không nhận được phản hồi từ bộ phận trợ giúp (đó là hệ thống PBS btw). Tôi sẽ không sử dụng song song cho những dịp này ..
—
tafelplankje