Under the your domain, add some lines to configure "simple" access control:
[domain/default]
access_provider = simple
simple_allow_users = topbanana
simple_allow_groups = bunchofbananas,wheel
How-to's and technical news about Linux and open computing, with a sprinkling of Python.
[domain/default]
access_provider = simple
simple_allow_users = topbanana
simple_allow_groups = bunchofbananas,wheel
export LD_LIBRARY_PATH=/cm/local/apps/cuda/libs/current/lib64The modifications to Ganglia Web, however, are out of date. I will make another post once I figure out how to do modify Ganglia Web to display the NVIDIA metrics.
crontab: pam_access(crond:account): access denied for user `root' from `cron'You may also see the following message when, as root, you type "crontab -e":
Permission deniedYou (root) are not allowed to access to (crontab) because of pam configuration.
+ : root : cron crond
[domain/default] ... enumerate = True
/*
* Requires https://github.com/dgruber/jsv
*/
package main
import (
"github.com/dgruber/jsv"
"strings"
"strconv"
)
func jsv_on_start_function() {
//jsv_send_env()
}
func job_verification_function() {
//
// Prevent jobs from accidental oversubscription
//
const intel_slots, amd_slots = 16, 64
var modified_p bool = false
if !jsv.JSV_is_param("pe_name") {
jsv.JSV_set_param("binding_strategy", "linear_automatic")
jsv.JSV_set_param("binding_type", "set")
jsv.JSV_set_param("binding_amount", "1")
jsv.JSV_set_param("binding_exp_n", "0")
modified_p = true
} else {
if !jsv.JSV_is_param("binding_strategy") {
var pe_max int
var v string
v, _ = jsv.JSV_get_param("pe_max")
pe_max, _ = strconv.Atoi(v)
var hostlist string
hostlist, _ = jsv.JSV_get_param("q_hard")
hostlist = strings.SplitAfterN(hostlist, "@", 2)[1]
jsv.JSV_set_param("binding_strategy", "striding_automatic")
jsv.JSV_set_param("binding_type", "pe")
if strings.EqualFold("@intelhosts", hostlist) {
if pe_max < intel_slots {
jsv.JSV_set_param("binding_amount", strconv.Itoa(pe_max))
} else {
jsv.JSV_set_param("binding_amount", strconv.Itoa(intel_slots))
}
} else if strings.EqualFold("@amdhosts", hostlist) {
if pe_max < amd_slots {
jsv.JSV_set_param("binding_amount", strconv.Itoa(pe_max))
} else {
jsv.JSV_set_param("binding_amount", strconv.Itoa(amd_slots))
}
}
jsv.JSV_set_param("binding_step", "1")
modified_p = true
}
}
if modified_p {
jsv.JSV_correct("Job was modified")
// show qsub params
jsv.JSV_show_params()
}
return
}
/* example JSV 'script' */
func main() {
jsv.Run(true, job_verification_function, jsv_on_start_function)
}