| In recent years, Intel has launched a Xeon Phi high-performance coprocessor based on MIC(Many Integrated Cores) architecture, is a solution which provides high parallelism. Since the cores in the Intel Xeon Phi coprocessor are x86 Intel Architecture cores and their underlying principle is similar to the CPU, so application development need not be limited by hardware limitations, but the program closer to the traditional way. This is a very big advantage in programming simplicity. Through the use of MIC coprocessor, we can improve the computing performance of our application, researching the practical application of CPU+MIC heterogeneous system is of great significance.This article focuses on the research and application of parallel hash function library in the compute nodes of the password search system in MIC computer cluster. By studying the MIC architecture features, we can analyze the common hash algorithms and the compositon and structure of the compute nodes, then propose the unity of the hash algorithm processing, design and implement a general parallel hash function library.Parallel hash function library consists of three main components, including public function library, basic parallel hash library and complex parallel hash library. Through these libraries, we not only can reduce the development costs of the common hashing algorithms, and improve the computing performance of application by the use of optimization technologies, including the KNC intrinsics optimization, load balancing optimization, hash comparison optimization and increasing parallel granularity etc. For instance, we can use the intrinsics of Knights Corner to optimize the implementation of parallel hash calculation, which can give full play to the VPU in MIC core. And the password space can be divided into common space and star space, which can solve the problem of load balancing between the host and the device. And the compare operation of the hash value can be reduced by the hash tree.Finally, through the test of several common hash algorithms, such as SHA1, MD5 and WPA/WPA2-PSK authentication algorithm, we can verify the availability and practicality of the parallel hash function library. We will consider to further expand the parallel hash function library, or to optimize the existing hash function already in the library. |