Dynamically Managing FPGAs for Efficient Computing