Copy the file tcml.tar.gz in a directory whose full path is, say, tcmldir. Inside tcmldir, do "gunzip tcml.tar.gz" and "tar -xvf tcml.tar" to extract the various library files. Now relink your program that uses WSMP by adding "-ltcmalloc_minimal -lstacktrace -lunwind -Ltcmldir" to create the executable. For example, if earlier, you were linking as: icc -o -lwsmp64 -L -lpthread -lm then now you should link as icc -o -lwsmp64 -L -ltcmalloc_minimal -lstacktrace -lunwind -Ltcmldir -lpthread -lm Before running the executable, set the environment variable LD_LIBRARY_PATH as follows (depending on your shell): export LD_LIBRARY_PATH=tcmldir:$LD_LIBRARY_PATH or setenv LD_LIBRARY_PATH tcmldir:$LD_LIBRARY_PATH Note that tcmldir needs to be replaced with the actual path of the directory where the files extracted from tcml.tar are located. You will need to set LD_LIBRARY_PATH for each session. When using TCmalloc with MPICH, it is best to set the environment variable LD_LIBRARY_PATH inside your .cshrc or .bashrc file so that all MPI processes can load the required shared oibraries.