The Hash-Semi-Join primitive is based on the framework of Hash-Join-MPU
. The Join function is replaced by Semi-Join function which returns only the first row of the small table while processing Probing.
See Internals of Hash-Semi-Join (Multi-Process-Unit Version).