Reputation: 4539
I have a single thread process which is cpu bound. Top shows that the load is greater than one. What would be the best method to increase the cpu throughput with cost in mind? I see that you can increase cpu speed and cpu core simultaneously. For instance it looks like I can use 4 or 8 cpus in the pull down to get a marginal speed improvement. However, this will mean in my case I am paying for cores which I don't need.
I see there is another option for selecting cpu platform type. This seems to be a selection on different bridge architectures. This means I have faster access to memory and possibly (I don't know) a faster cpu processing pipeline.
I am not sure which is the best option and I don't want to tweak a setting which more than doubles my cost.
Any advice is appreciated.
Upvotes: 3
Views: 906
Reputation: 4539
This was not a full blown scientific test. I simply ran some code start to finish and programatically recorded the wall time. Between changing cpu platform, I waited a bit after a restart to let things settle down. I did not wait the same specified time or until top showed some specified load level. The code used for testing is python 3 with some BigQuery access, pandas and numpy. Basically its code I am interested in having faster runs for development purposes. Some configurations were ran more than once. With that said here are my results:
CPU Platform selection (seconds per run)
I did the GPU tests last and I did not think it would improve results. This code does not use tensorflow and as far as I know pandas does not use GPU libraries either so the increased performance of using a GPU is unexpected.
I do not have full billing visibility on this project so I could not record any costs differences between platforms. I imagine a good test would be to see if you can observe billing changes for the different test runs.
Upvotes: 5