Emulator
For the official discussion on speedrun.com as well as a video guide on setting up and showing emulator settings, check out this link: https://www.speedrun.com/mzm/thread/syvkl
The rest of this page will more or less recap that same information here in wiki form.
Bizhawk is currently the only accepted Emulator for running Real Time speedruns, you can get Bizhawk here: http://tasvideos.org/BizHawk.html. The reason only Bizhawk is allowed is because it is the only emulator so far that has been tested and verified by the community to run at the same speed as consoles, and only as long as the GBA Bios has been imported into Bizhawk. Any other emulator that's been tested so far has been shown to run slightly faster, mainly from door transitions being sped up by a few frames per door which can add up to about a minute faster per hour.
Getting the latest version is preferred, but any version is acceptable for running the game except for versions 2.3.3 and 2.4 which are not allowed due to coming with a beta version of the MGBA core which has been known to show some issues. An updated version of that version of MGBA was added in 2.4.1 and every version after that has appeared fine so far (currently 2.6.2 is the latest at the time of writing this).
If you don't care about the real time speedrun and just want to post your game time to the leaderboard, you can use any emulator for just the game time. While the inaccuracies may speed up door load times, they don't speed up the actual gameplay and the in-game timer is not affected by the load times being faster. So with this in mind you can still compare your game time with other runner's game times on the leaderboard even if you don't want to use bizhawk or find a copy of the GBA Bios.