-
Notifications
You must be signed in to change notification settings - Fork 11
Other optimisations
By default there is a setting in the systemd
minknow.service file that appears to limit the loading of the systems CPUs - look for the variable CPUQuota
and you'll notice it's default is CPUQuota=300%
(for the MinIT configuration at least). Modifying this variable has provided quite dramatic increases in performance for particular applications/processes.
For the NX I've settled on changing the CPUQuota to 400%, essentially allowing any one running process use a maximum of 4 CPU cores (as I understand it). So for example, doing this means that MinKnow is able to utalise an extra core, leaving 2 cores for Guppy. One could explore changing to 500% and benchmarking, on the NX/AGX Guppy might not require more than a single core. Example minknow.service
file below.
[Unit]
Description=MinKNOW Instrument Software for MinIT (daemon)
[Service]
ExecStart=/opt/ont/minknow/bin/mk_manager_svc
WorkingDirectory=/opt/ont/minknow
KillMode=mixed
User=root
Group=root
SyslogIdentifier=minknow
LogsDirectory=minknow
LimitCORE=infinity
LimitNICE=40
NoNewPrivileges=true
ExecStartPre=/bin/sleep 15
CPUQuota=400%
[Install]
WantedBy=multi-user.target
For the Xavier AGX we are able to scale the CPUQuota up to 600%, so a maximum of 6 cores can be used for a running process. Doing so has greatly increased the performance for applications such as adaptive sampling. Example minknow.service
below.
[Unit]
Description=MinKNOW Instrument Software for MinIT (daemon)
[Service]
ExecStart=/opt/ont/minknow/bin/mk_manager_svc
WorkingDirectory=/opt/ont/minknow
KillMode=mixed
User=root
Group=root
SyslogIdentifier=minknow
LogsDirectory=minknow
LimitCORE=infinity
LimitNICE=40
NoNewPrivileges=true
ExecStartPre=/bin/sleep 15
CPUQuota=600%
[Install]
WantedBy=multi-user.target