apiVersion: v1 kind: ConfigMap metadata: name: sgemm namespace: default data: sgemm.py: | import os import sys import time import numpy import logging from numpy.random import randn fmt = "%(asctime)-15s %(levelname)s %(filename)s %(lineno)d %(process)d %(message)s" logging.basicConfig(level=logging.DEBUG,format=fmt) logging.getLogger().info("start sgemm computing!") logger=logging.getLogger() def run_sgemm(N,l): A = randn(N,N).astype('float32') B = randn(N,N).astype('float32') start = time.time(); for i in range(0,l): ref = numpy.dot(A,B) end = time.time() timediff = (end -start) mflops = ( 2*N*N*N) *l / timediff mflops *= 1e-6 size = "%dx%d" % (N,N) logger.info("%14s :\t%20f MFlops\t%20f sec\n" % (size,mflops,timediff)) if __name__ == "__main__": N=128 NMAX=2048 NINC=128 LOOPS=1 z=0 for arg in sys.argv: if z == 1: N = int(arg) elif z == 2: NMAX = int(arg) elif z == 3: NINC = int(arg) elif z == 4: LOOPS = int(arg) z = z + 1 if 'OPENBLAS_LOOPS' in os.environ: p = os.environ['OPENBLAS_LOOPS'] if p: LOOPS = int(p); logger.info("From: %d To: %d Step=%d Loops=%d\n" % (N, NMAX, NINC, LOOPS)) logger.info("\tSIZE\t\t\tFlops\t\t\t\t\tTime\n") logger.info("Hello! Finished\n") for i in range (N,NMAX+NINC,NINC): run_sgemm(i,LOOPS) --- apiVersion: apps/v1 kind: Deployment metadata: name: numpy-mp-deploy labels: app: bench spec: selector: matchLabels: app: bench replicas: 1 template: metadata: labels: app: bench spec: containers: - name: clr-nmp image: clearlinux/numpy-mp resources: limits: cpu: "10" requests: cpu: "0.5" env: # - name: OMP_NUM_THREADS # value: "" - name: OPENBLAS_LOOPS value: "2000" args: - "python3" - "sgemm.py" - "1280" - "1280" volumeMounts: - name: sgemm-py mountPath: /bench/sgemm.py subPath: sgemm.py volumes: - name: sgemm-py configMap: name: sgemm