First you need to check your boat is original gel coat and not been painted - if it's painted, ignore the rest of this post, it will probably remove the paint!
Then first stage is a straightforward wash - I would use whatever car shampoo you have to hand - that will probably get 90 percent of it. A pressure washer will also help.
Then use an oxalic acid product such as Y10 gel to clean all the stains - it will also work well on the green stuff - best thing about this product is that it doesn't use any elbow grease - paint it on and it does the cleaning as if by magic before you hose it off again a few minutes later. Don't be alarmed by the small size of the pot - one pot would do a 17ft boat at least twice over.
If you still have some really obstinate green bits, a bottom cleaner such as Starbrite boat bottom cleaner can be used - but I find Y10 gets it all.
Then once the boat is as clean as you can get it, the product you show comes into play - if you use before, you will just get shiny dirt! Personally I prefer the Farecla products - you need a cutting paste if the surface is really oxidised - but the crucial bit is to use a power polisher with a good quality sponge mop - you will never get anywhere near the same level of shine with elbow grease alone. If you get some really obstinate bits, you can wet sand with 1200 grit or finer wet and dry - I use washing up liquid to reduce its cut a bit more.
Then finally you have to seal the job if you're not going to have to do it all again in a short time - I use Autoglym Resin Polish.
Loads of how-to-videos on YouTube and I think on Salar's website there's a 'how to' guide as well.
Do the job well (be prepared to put some hours in) and you can get old GRP to look like the boat was built yesterday - the photo is a 12 year old boat.
For inside the hull, I like to use bilge cleaner - works really well on the grease etc that finds its way into the bilges.
