2010-09-14 14 views
6

Tôi đang chạy rất nhiều công việc với Sun Grid Engine. Vì đây là một công việc (~ 100000), tôi muốn sử dụng các công việc mảng, có vẻ dễ dàng hơn trong hàng đợi.Chuyển hướng đầu ra đến các thư mục khác nhau cho các công việc mảng động cơ lưới mặt trời

Một vấn đề khác là mỗi công việc tạo ra tệp stdout và stderr, mà tôi cần theo dõi lỗi. Nếu tôi xác định chúng trong qsub -t 1-100000 -o outputdir -e errordir, tôi sẽ có thư mục với 100000 tệp trong đó, quá nhiều.

Có cách nào để mỗi công việc ghi tệp đầu ra vào thư mục (ví dụ: thư mục bao gồm 2 ký tự đầu tiên của ID công việc, là chữ cái ngẫu nhiên hex hoặc số công việc modulu 1000 hoặc một cái gì đó thuộc loại đó).

Cảm ơn

Trả lời

2

Tôi không thể nghĩ ra một cách tốt để làm điều này với qsub như không có giao diện chương trình vào -o và các tùy chọn -e. Có, tuy nhiên, một cách để thực hiện những gì bạn muốn.

Chạy qsub của bạn bằng -o và-trỏ đến/dev/null. Làm cho lệnh bạn chạy là một loại trình bao bọc mà chuyển hướng stdout của riêng nó và stderr thành các tệp theo bất kỳ kiểu nào bạn muốn (tức là cấu trúc thư mục bị hỏng) trước khi nó thực hiện công việc thực.