<!--
    PRACE BENCHMARK SUITE

    JuBE benchmark configuration schemata for: PEPC

    Contact: l.arnold@fz-juelich.de
-->

<bench name = "QCD"   platform = "Intel-Broadwell-Marconi" >

<!-- ********************************************************** -->

<benchmark name = "functional"   active = "1"  >
    <!-- version="reuse|new" -->
    <compile     cname = "$platform"   version = "new" 
		 CMP_KRNELS      = "$KERNELS"
		 CMP_KA_LIBD     = "`{$a = '$KA_LIBD'; $a =~ s/[ ]//g; $a}`"
		 CMP_KA_LIBCOMM  = "`{$a = '$KA_LIBCOMM'; $a =~ s/[ ]//g; $a}`"
		 CMP_KC_NP       = "${KC_NX}x${KC_NY}x${KC_NZ}x${KC_NT}"
		 CMP_KC_L        = "${KC_PX}x${KC_PY}x${KC_PZ}x${KC_PT}"
		 CMP_OPTFLAGS    = "`{$a = '$optflags'; $a =~ s/[ ]//g; $a}`"
		 CMP_GPROF       = "$GPROF"
		 />

    <tasks       threadspertask = "1"   taskspernode = "16"   nodes = "2"/> 

    <params	 COMMENT        = "fuctional test on Marconi"
                 KERNELS        = "ABDE"

		 PERL_CMD       = "perl"

                 optflags       = "-O2"

		 GPROF          = "off"

                 KA_LIBCOMM     = "lib_mpi.a" 
                 KA_LIBCLOVER   = "libclover.a"
		 KA_LIBD        = "libd2.a"
		 KA_NX          = "predefinedparams(KA_small,$tasks,nx)"
		 KA_NY          = "predefinedparams(KA_small,$tasks,ny)"
		 KA_NZ          = "predefinedparams(KA_small,$tasks,nz)"
		 KA_NT          = "predefinedparams(KA_small,$tasks,nt)"
		 KA_PX          = "predefinedparams(KA_small,$tasks,px)"
		 KA_PY          = "predefinedparams(KA_small,$tasks,py)"
		 KA_PZ          = "predefinedparams(KA_small,$tasks,pz)"
		 KA_PT          = "predefinedparams(KA_small,$tasks,pt)"
		 KA_MAXITER     = "50" 

		 KB_NX          = "predefinedparams(KB_small,$tasks,nx)"
		 KB_NY          = "predefinedparams(KB_small,$tasks,ny)"
		 KB_NZ          = "predefinedparams(KB_small,$tasks,nz)"
		 KB_MAXITER     = "50"

		 KC_NX          = "predefinedparams(KC_small,$tasks,nx)"
		 KC_NY          = "predefinedparams(KC_small,$tasks,ny)"
		 KC_NZ          = "predefinedparams(KC_small,$tasks,nz)"
		 KC_NT          = "predefinedparams(KC_small,$tasks,nt)"
		 KC_PX          = "predefinedparams(KC_small,$tasks,px)"
		 KC_PY          = "predefinedparams(KC_small,$tasks,py)"
		 KC_PZ          = "predefinedparams(KC_small,$tasks,pz)"
		 KC_PT          = "predefinedparams(KC_small,$tasks,pt)"

		 KD_L           = "predefinedparams(KD_small,$tasks,nl)"
		 KD_T           = "predefinedparams(KD_small,$tasks,nt)"
		 KD_PX          = "predefinedparams(KD_small,$tasks,px)"
		 KD_PY          = "predefinedparams(KD_small,$tasks,py)"
		 KD_PZ          = "predefinedparams(KD_small,$tasks,pz)"

		 KE_NX          = "predefinedparams(KE_small,$tasks,nx)"
		 KE_NY          = "predefinedparams(KE_small,$tasks,ny)"
		 KE_NZ          = "predefinedparams(KE_small,$tasks,nz)"
		 KE_NT          = "predefinedparams(KE_small,$tasks,nt)"
		 KE_PX          = "predefinedparams(KE_small,$tasks,px)"
		 KE_PY          = "predefinedparams(KE_small,$tasks,py)"
		 KE_PZ          = "predefinedparams(KE_small,$tasks,pz)"
		 KE_PT          = "predefinedparams(KE_small,$tasks,pt)"
		 KE_WILSON_MASS = "-1.8"
		 KE_MAXITER     = "1000"
		 
    /> 

    <prepare     cname="QCD_Prepare" />

    <execution   iteration = "1"   cname = "$platform"/>
    <verify      cname="QCD_Verify" />
    <analyse     cname="$platform" /> 

    <KA_small>
    <predefparam nodes = "2" tasks="32"  nx="16" ny="16" nz="16" nt="16" px="4" py="2" pz="2" pt="2" />
    <predefparam nodes = "4" tasks="64"  nx="16" ny="16" nz="16" nt="16" px="4" py="4" pz="2" pt="2" />
    <predefparam nodes = "8" tasks="128" nx="16" ny="16" nz="16" nt="16" px="4" py="4" pz="4" pt="2" />
    </KA_small>

    <KB_small>
    <predefparam nodes = "2" tasks="32"  nx="64" ny="64" nz="64" />
    <predefparam nodes = "4" tasks="64"  nx="64" ny="64" nz="64" />
    <predefparam nodes = "8" tasks="128" nx="64" ny="64" nz="64" />
    </KB_small>

    <KC_small>
    <predefparam nodes = "2" tasks="32"  nx="8" ny="8" nz="8" nt="8" px="4" py="2" pz="2" pt="2" />
    <predefparam nodes = "4" tasks="64"  nx="8" ny="8" nz="8" nt="8" px="4" py="4" pz="2" pt="2" />
    <predefparam nodes = "8" tasks="128" nx="8" ny="8" nz="8" nt="8" px="4" py="4" pz="4" pt="2" />
    </KC_small>

    <KD_small>
    <predefparam nodes = "2" tasks="32"  nl="16" nt="16" px="2" py="2" pz="2" />
    <predefparam nodes = "4" tasks="64"  nl="16" nt="16" px="2" py="2" pz="2" />
    <predefparam nodes = "8" tasks="128" nl="16" nt="16" px="4" py="4" pz="4" />
    </KD_small>

    <KE_small>
    <predefparam nodes = "2" tasks="32"  nx="16" ny="16" nz="16" nt="16" px="4" py="2" pz="2" pt="2" />
    <predefparam nodes = "4" tasks="64"  nx="16" ny="16" nz="16" nt="16" px="4" py="4" pz="2" pt="2" />
    <predefparam nodes = "8" tasks="128" nx="16" ny="16" nz="16" nt="16" px="4" py="4" pz="4" pt="2" />
    </KE_small>

    <KA_medium>
    <predefparam tasks="256"   nx="32" ny="32" nz="64" nt="64" px="4"  py="4" pz="4" pt="4" />
    <predefparam tasks="512"   nx="32" ny="32" nz="64" nt="64" px="4"  py="4" pz="4" pt="8" />
    <predefparam tasks="1024"  nx="32" ny="32" nz="64" nt="64" px="4"  py="4" pz="8" pt="8" />
    <predefparam tasks="2048"  nx="32" ny="32" nz="64" nt="64" px="4"  py="8" pz="8" pt="8" />
    <predefparam tasks="4096"  nx="32" ny="32" nz="64" nt="64" px="8"  py="8" pz="8" pt="8" />
    <predefparam tasks="8192"  nx="32" ny="32" nz="64" nt="64" px="8"  py="8" pz="8" pt="16" />
    <predefparam tasks="16384" nx="32" ny="32" nz="64" nt="64" px="8"  py="8" pz="16" pt="16" />
    <predefparam tasks="32768" nx="32" ny="32" nz="64" nt="64" px="8"  py="16" pz="16" pt="16" />
    <predefparam tasks="65536" nx="32" ny="32" nz="64" nt="64" px="16" py="16" pz="16" pt="16" />
    </KA_medium>

    <KB_medium>
    <predefparam tasks="256"  nx="256" ny="256" nz="256" />
    <predefparam tasks="512"  nx="256" ny="256" nz="256" />
    <predefparam tasks="1024" nx="256" ny="256" nz="256" />
    <predefparam tasks="2048" nx="256" ny="256" nz="256" />
    <predefparam tasks="4096" nx="256" ny="256" nz="256" />
    <predefparam tasks="8192" nx="256" ny="256" nz="256" />
    <predefparam tasks="16384" nx="256" ny="256" nz="256" />
    <predefparam tasks="32768" nx="256" ny="256" nz="256" />
    <predefparam tasks="65536" nx="256" ny="256" nz="256" />
    </KB_medium>

    <KC_medium>
    <predefparam tasks="256"  nx="8" ny="8" nz="8" nt="8" px="4" py="4" pz="4" pt="4" />
    <predefparam tasks="512"  nx="8" ny="8" nz="8" nt="8" px="4" py="4" pz="4" pt="8" />
    <predefparam tasks="1024" nx="8" ny="8" nz="8" nt="8" px="4" py="4" pz="8" pt="8" />
    <predefparam tasks="2048" nx="8" ny="8" nz="8" nt="8" px="4" py="8" pz="8" pt="8" />
    <predefparam tasks="4096" nx="8" ny="8" nz="8" nt="8" px="8" py="8" pz="8" pt="8" />
    <predefparam tasks="8192" nx="8" ny="8" nz="8" nt="8" px="8" py="8" pz="8" pt="16" />
    <predefparam tasks="16384" nx="8" ny="8" nz="8" nt="8" px="8" py="8" pz="16" pt="16" />
    <predefparam tasks="32768" nx="8" ny="8" nz="8" nt="8" px="8" py="16" pz="16" pt="16" />
    <predefparam tasks="65536" nx="8" ny="8" nz="8" nt="8" px="16" py="16" pz="16" pt="16" />
    </KC_medium>

    <KD_medium>
    <predefparam tasks="256"   nl="64"  nt="64" px="4"  py="4"  pz="4" />
    <predefparam tasks="512"   nl="64"  nt="64" px="4"  py="4"  pz="4" />
    <predefparam tasks="1024"  nl="64"  nt="64" px="4"  py="4"  pz="8" />
    <predefparam tasks="2048"  nl="64"  nt="64" px="4"  py="8"  pz="8" />
    <predefparam tasks="4096"  nl="64"  nt="64" px="8"  py="8"  pz="8" />
    <predefparam tasks="8192"  nl="64"  nt="64" px="8"  py="8"  pz="16" />
    <predefparam tasks="16384" nl="64"  nt="64" px="8"  py="16" pz="16" />
    <predefparam tasks="32768" nl="64"  nt="64" px="8"  py="16" pz="16" />
    <predefparam tasks="65536" nl="64"  nt="64" px="16" py="16" pz="16" />
    </KD_medium>

    <KE_medium>
    <predefparam tasks="256"   nx="64" ny="64" nz="64" nt="32" px="4"  py="4" pz="4" pt="4" />
    <predefparam tasks="512"   nx="64" ny="64" nz="64" nt="32" px="4"  py="4" pz="4" pt="8" />
    <predefparam tasks="1024"  nx="64" ny="64" nz="64" nt="32" px="4"  py="4" pz="8" pt="8" />
    <predefparam tasks="2048"  nx="64" ny="64" nz="64" nt="32" px="4"  py="8" pz="8" pt="8" />
    <predefparam tasks="4096"  nx="64" ny="64" nz="64" nt="32" px="8"  py="8" pz="8" pt="8" />
    <predefparam tasks="8192"  nx="64" ny="64" nz="64" nt="32" px="8"  py="8" pz="8" pt="16" />
    <predefparam tasks="16384" nx="64" ny="64" nz="64" nt="32" px="8"  py="8" pz="16" pt="16" />
    <predefparam tasks="32768" nx="64" ny="64" nz="64" nt="32" px="8"  py="16" pz="16" pt="16" />
    <predefparam tasks="65536" nx="64" ny="64" nz="64" nt="32" px="16" py="16" pz="16" pt="16" />
    </KE_medium>


</benchmark>

<!-- ********************************************************** -->


</bench>




