---
layout: default
navsection: installguide
title: Install the Crunch dispatcher
...
The dispatcher normally runs on the same host/VM as the API server.
h4. Perl SDK dependencies
Install the Perl SDK on the controller.
* See "Perl SDK":{{site.baseurl}}/sdk/perl/index.html page for details.
h4. Python SDK dependencies
Install the Python SDK and CLI tools on controller and all compute nodes.
* See "Python SDK":{{site.baseurl}}/sdk/python/sdk-python.html page for details.
h4. Slurm
On the API server, install slurm and munge, and generate a munge key:
~$ sudo /usr/bin/apt-get install slurm-llnl munge
~$ sudo /usr/sbin/create-munge-key
ControlMachine=uuid_prefix.your.domain
SlurmctldPort=6817
SlurmdPort=6818
AuthType=auth/munge
StateSaveLocation=/tmp
SlurmdSpoolDir=/tmp/slurmd
SwitchType=switch/none
MpiDefault=none
SlurmctldPidFile=/var/run/slurmctld.pid
SlurmdPidFile=/var/run/slurmd.pid
ProctrackType=proctrack/pgid
CacheGroups=0
ReturnToService=2
TaskPlugin=task/affinity
#
# TIMERS
SlurmctldTimeout=300
SlurmdTimeout=300
InactiveLimit=0
MinJobAge=300
KillWait=30
Waittime=0
#
# SCHEDULING
SchedulerType=sched/backfill
SchedulerPort=7321
SelectType=select/cons_res
SelectTypeParameters=CR_CPU_Memory
FastSchedule=1
#
# LOGGING
SlurmctldDebug=3
#SlurmctldLogFile=
SlurmdDebug=3
#SlurmdLogFile=
JobCompType=jobcomp/none
#JobCompLoc=
JobAcctGatherType=jobacct_gather/none
#
# COMPUTE NODES
NodeName=DEFAULT
PartitionName=DEFAULT MaxTime=INFINITE State=UP
PartitionName=compute Default=YES Shared=yes
NodeName=compute[0-255]
PartitionName=compute Nodes=compute[0-255]
read -rd $'\000' newjob <Without getting this error: ArgumentError: Specified script_version does not resolve to a commith4. Running jobs * @services/api/script/crunch-dispatch.rb@ must be running. * @crunch-dispatch.rb@ needs @services/crunch/crunch-job@ in its @PATH@. * @crunch-job@ needs @sdk/perl/lib@ and @warehouse-apps/libwarehouse-perl/lib@ in its @PERLLIB@ * @crunch-job@ needs @ARVADOS_API_HOST@ (and, if necessary in a development environment, @ARVADOS_API_HOST_INSECURE@) Example @/var/service/arvados_crunch_dispatch/run@ script:#!/bin/sh set -e rvmexec="" ## uncomment this line if you use rvm: #rvmexec="/usr/local/rvm/bin/rvm-exec 2.1.1" export PATH="$PATH":/path/to/arvados/services/crunch export ARVADOS_API_HOST={{ site.arvados_api_host }} export CRUNCH_DISPATCH_LOCKFILE=/var/lock/crunch-dispatch fuser -TERM -k $CRUNCH_DISPATCH_LOCKFILE || true ## Only if your SSL cert is unverifiable: # export ARVADOS_API_HOST_INSECURE=yes cd /path/to/arvados/services/api export RAILS_ENV=production exec $rvmexec bundle exec ./script/crunch-dispatch.rb 2>&1