Cal-hypo is the most popular shock used as well as the strongest shock available. Cal-hypo is a quick dissolving, unstabilzed shock which means that the sun's uv rays will burn it off quickly and it will not increase the cyanuric acid level in the swimming pool. It is quick dissolving but should be pre-dissolved before adding it to the pool. Failure to do so may cause pin holes in a vinyl liner and/or bleaching of the pool surface. Cal-hypo shock purchased in a "big box store" will be weaker compared to the same product purchased from a swimming pool supplier (Inyo Pools). This is because a "big box store" has restrictions as to the type of chemicals they can carry. Cal-hypo shock will usually raise the pH level when added to the swimming pool. Cal-hypo should be added in the evening and swimming can be resumed once the chlorine has returned to normal levels.
Sodium di-chlor is a slow dissolving, granular chlorine that is stabilized. It will last in the water longer than cal-hypo would. Di-chlor contains stabilizer which will increase the cyanuric acid level in the swimming pool. It can be used as a shock treatment (1 lb per 10,000 gallons) or as a maintenance chlorine (3 oz. per 10,000 gallons). Sodium di-chlor will usually raise the pH level when added to the swimming pool. Di-chlor should be added in the evening and swimming can be resumed once the chlorine has returned to normal levels.
Potassium monopersulfate is an oxygen based shock and contains no chlorine. Non-chlorine shock is primarily used to oxidize the water and remove contaminants from your swimming pool. It actually helps the chlorine work better. This type of shock is commonly referred to as "shock and swim" because it can be added at anytime during the day. Swimming can be resumed 15 minutes after the product is added to the swimming pool. Non-chlorine shock will not affect the cyanuric acid in the swimming pool.
Which one should I use? The type of shock you should use will depend on the water chemistry and why you are shocking. If the water is green, I would recommend using the cal-hypo shock. If you are shocking as part of a weekly maintenance and the pool looks clean, you can use either of the 3 shocks. I normally would recommend the non-chlorine shock be used every other week (week 1 chlorine shock, week 2 non-chlorine shock, week 3 chlorine shock etc.) or before or after a heavy bather load. I would also recommend using a non-chlorine shock if bromine is used as the primary sanitizer.