Is it necessary for all miner to reset mining when the tip of blockchain has changed? Each block in the blockchain contains a pointer to the previous block (block header). If multiple blocks reference certain block as their parent, only the one that is part of longest chain is accepted.

Suppose that the hash of the current blockchain tip (last block) is 'A'. Two miner concurrently works on new blocks (containing different transactions) referring to A as a parent. Is it necessary for the slower miner to reset his work when faster miner finishes his block (with hash 'B') and broadcasts it, because the next block has to reference 'B' instead of 'A' as a parent?

If this principle holds, does it mean that slower miners have to restart their work more frequently because they are outrun by faster miners who publish their blocks and so change the blockchain tip?
Correct: when block B is broadcast and validated, all miners need to construct new blocks containing a hash of block B's header.

However, it takes only a minuscule amount of computer processing time to construct a new block, so there is effectively no such thing as "restarting work".  Mining is specifically designed to be progress-free: you have the same chance of finding a valid block after a millisecond of work as you do after an hour of work.

Progress-free mining means that a miner with x hash rate should produce n blocks over time, and a miner with 2x hash rate should produce 2n blocks over time---there should be no special advantage to the more powerful miner.