Effective parallel programming for a PC cluster integrating multi-core processors requires programmers two types of skill that have different nature; that is multi-thread programming to use multiple cores, and programming for inter-node communication by using libraries such as MPI. For the ease of programming development, we propose a Thread Virtualization Environment (TVE) which virtualizes multiple cores in multiple nodes connected by a network as if they are in one node. If we use this environment, we only need the knowledge of multi-thread programming techniques to effectively utilize the computing resources in multiple nodes. As long inter-node communication delay can severely downgrade performance in some applications, we implemented a caching mechanism on each node so that the number of inter-node communication can be reduced. As the result of executing Monte-Carlo method, whose algorithm requires few data transfers, on TVE, we confirmed that performance scaled well as number of cores increased. On the other hand, Levenshtein Distance computation with frequent data transfers, performance using 30 cores was 0.029 times compared to that of using 6 cores. However, by adopting cache mechanism, inter-node data transfer time was shortened to 5% using the same program.