An Emulator is software that 'emulates' the original hardware of a gaming system in order run software designed for the original hardware on a foreign system and architecture. For the SNES there are quite a few emulators available. While many of these have been important to the evolution of ROM hacking and the life of other emulators, only a few of them are currently recommended for performance and security reasons.
RetroArch is a single emulator that can load different 'cores', or support multiple gaming consoles. It uses LibRetro which works on various platforms, making it available on PC as well as many other devices. There are LibRetro builds for the Nintendo 3DS, for example.
Since RetroArch can play games from almost every older console, as well as it's great configuration options, it is highly recommended for emulated play.
Configuration and Optimization
Using either the snes9x or bsnes core with VSync and GSync enabled as well as 13 Frame Delay, the following Latency configuration works well:
snes9x has been around for some time and has been ported to many different architectures. It provides very good emulation of the SNES and has support for external integrations via Lua hooks/bridge.
While BizHawk focuses on Windows, it is designed for TAS creation and does well at this task.
Historic / Outdated
DO NOT USE ZSNES. ZSNES is considered insecure and allows an attacker to run code outside of the emulator. There was much consideration of listing ZSNES and it is being listed solely to inform people of the danger of using it.