diff --git a/spades.wdl b/spades.wdl
index ce9de29cecb0b48d20faff177fc1a007e0e7c312..7fd0c986d8555ddb0f816803dd6b6a20d2e04cbe 100644
--- a/spades.wdl
+++ b/spades.wdl
@@ -28,8 +28,8 @@ task spades {
     Float? covCutoff
     Int? phredOffset
     Int finalThreads = select_first([threads,1])
-    Int totalMemory = select_first([memoryGb, finalThreads * 16])
-    Int clusterMemory = totalMemory / finalThreads
+    Float totalMemory = select_first([memoryGb, finalThreads * 16])
+    Int clusterMemory = ceil(totalMemory / finalThreads)
 
     command {
         set -e -o pipefail
@@ -57,7 +57,7 @@ task spades {
         ${true="--disable-rr" false="" disableRepeatResolution } \
         ${"--dataset " + dataset } \
         ${"--threads " + finalThreads} \
-        ${"--memory " + totalMemory } \
+        ${"--memory " + ceil(totalMemory) } \
         ${"-k " + k } \
         ${"--cov-cutoff " + covCutoff } \
         ${"--phred-offset " + phredOffset }