Bagaimana saya bisa mengatur jumlah maksimum menjalankan pekerjaan per pengguna di SGE?

9

Kami menggunakan SGE (Sun Grid Manager). Kami memiliki beberapa batasan pada jumlah total pekerjaan bersamaan dari semua pengguna.

Saya ingin tahu apakah mungkin untuk menetapkan batas sementara, sukarela pada jumlah pekerjaan berjalan bersamaan untuk pengguna tertentu.

Misalnya pengguna daveakan mengirimkan 500 pekerjaan, tetapi ia ingin tidak lebih dari 100 untuk berjalan secara bersamaan, misalnya karena ia tahu pekerjaan melakukan banyak I / O yang terjebak pada filesystem (kisah nyata, sayangnya).

Apakah itu mungkin?

David B
sumber

Jawaban:

9

Anda dapat mendefinisikan kompleks dengan qconf -mc. Sebut saja sesuatu seperti high_ioatau apa pun yang Anda suka, dan setel bidang yang dapat dikonsumsi YES. Kemudian dalam konfigurasi global dengan qconf -me globalatau dalam antrian tertentu dengan nilai-nilai kompleks yang qconf -mq <queue name>ditetapkan high_io=500. Sekarang beri tahu pengguna Anda untuk menentukan -l high_io=1atau berapa banyak "token" yang Anda ingin mereka gunakan. Ini akan membatasi jumlah pekerjaan bersamaan untuk apa pun yang Anda tetapkan nilai kompleksnya.

Cara lain untuk melakukan ini adalah dengan kuota. Tambahkan kuota dengan qconf -arqsyang terlihat seperti:

 {
        name         dave_max_slots
        description  "Limit dave to 500 slots"
        enabled      true
        limit        users {dave} to slots=500
 }
Kamil Kisiel
sumber
Terima kasih Kamil dan maaf atas jawaban yang terlambat. Beberapa tindak lanjut, karena saya cukup baru qconf. Mengenai saran pertama Anda, bisakah Anda sedikit lebih eksplisit? Apa itu "konsumsi"? Setelah mengkonfigurasi seperti yang disebutkan, fo saya hanya memberitahu pengguna untuk qsubdengan -l high_io=1?
David B
1
Pada dasarnya kompleks adalah sumber daya bernilai yang dapat diminta oleh pekerjaan dengan -lberalih ke qsub. Dengan menetapkan kompleks agar dapat dikonsumsi, itu berarti bahwa ketika suatu pekerjaan meminta kompleks yang jumlahnya tersedia berkurang. Jadi jika antrian memiliki 500 kompleks high_io, dan permintaan pekerjaan 20, akan ada 480 tersedia untuk pekerjaan lain. Anda akan meminta kompleks seperti pada contoh Anda.
Kamil Kisiel
Terima kasih, Kamil. Maaf saya tidak bisa memilih (reputasi belum cukup).
David B