diff --git a/4-GPU/HandsOn/Solutions/C/task0/Makefile b/4-GPU/HandsOn/Solutions/C/task0/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..e3265d91d53c6ff782546d7ba7011e06ba661617
--- /dev/null
+++ b/4-GPU/HandsOn/Solutions/C/task0/Makefile
@@ -0,0 +1,49 @@
+# Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved.
+COMPILER ?= PGI-tesla
+CC = pgcc
+CFLAGS = -DUSE_DOUBLE
+ifeq ($(COMPILER),GCC)
+	CFLAGS += -std=c99 -march=native -O3 -lm
+else ifeq ($(COMPILER),PGI)
+	CFLAGS += -fast
+else ifeq ($(COMPILER),PGI-tesla)
+	CFLAGS += -Minfo=accel -fast -acc -ta=tesla:cc70,managed
+else ifeq ($(COMPILER),PGI-multicore)
+	CFLAGS += -Minfo=accel -fast -acc -ta=multicore
+endif
+
+TASK=0
+NP ?= 1
+PGPROF=pgprof -f --cpu-profiling off --openmp-profiling off
+
+all: poisson2d
+
+poisson2d_serial.o: poisson2d_serial.c common.h  Makefile
+	$(CC) -c $(CFLAGS) poisson2d_serial.c -o poisson2d_serial.o
+
+poisson2d: poisson2d.c common.h poisson2d_serial.o Makefile
+	$(CC) $(CFLAGS) poisson2d.c poisson2d_serial.o -o poisson2d
+
+poisson2d.solution: poisson2d.solution.c common.h poisson2d_serial.o Makefile
+	$(CC) $(CFLAGS) poisson2d.solution.c poisson2d_serial.o -o poisson2d.solution
+
+clean:
+	rm -f poisson2d poisson2d.solution poisson2d*.o poisson2d.solution.pgprof poisson2d.pgprof
+
+run: poisson2d
+	${SC19_SUBMIT_CMD} ./poisson2d
+
+#Disable CPU Profiling to minimize size of profiles
+profile: poisson2d
+	${SC19_SUBMIT_CMD} ${PGPROF}  -f -o ${SC19_DIR_SCRATCH}/poisson2d.pgprof ./poisson2d 10
+	mv ${SC19_DIR_SCRATCH}/poisson2d.pgprof .
+
+solution: poisson2d.solution
+
+run.solution: poisson2d.solution
+	${SC19_SUBMIT_CMD} ./poisson2d.solution
+
+#Disable CPU Profiling to minimize size of profiles
+profile.solution: poisson2d.solution
+	${SC19_SUBMIT_CMD} ${PGPROF}  -o ${SC19_DIR_SCRATCH}/poisson2d.solution.pgprof ./poisson2d.solution 10
+	mv ${SC19_DIR_SCRATCH}/poisson2d.solution.pgprof .
\ No newline at end of file