HPC for Excel - Compute node core utilization?

Aleksi Sivonen 21 Reputation points
2021-07-23T07:06:26.443+00:00

Hello,

I'm interested about the scheduler behaviour with HPC for Excel. It is clearly stated in the documentation that the scheduler is sending calculation tasks to compute nodes as a copy of original workbook. So is the scheduler able utilize multiple cores by passing as many calculation tasks for a one compute node to run? For instance if one node has 12 cores then 12 task can be ran simultaneously. Or is it running one task per one compute node?

I did not find clear answer for that while reading the documentations and since vba does not natively support parallel calculation I thought that before implementing the HPC features I ask if someone has better knowledge about this specific topic.

Azure Virtual Machines
Azure Virtual Machines
An Azure service that is used to provision Windows and Linux virtual machines.
7,160 questions
Not Monitored
Not Monitored
Tag not monitored by Microsoft.
36,171 questions
0 comments No comments
{count} votes

Accepted answer
  1. Yutong Sun 261 Reputation points Microsoft Employee
    2021-07-26T05:35:17.84+00:00

    Hi Aleksi,

    Yes, the scheduler is able to utilize multiple cores to run multiple Excel workbook instances serving multiple HPC_Execute VBA macros in parallel. You may also control the number of parallel Excel workbook instances by under or over subscribing the cores on a compute node.

    Also note, if there are many cores/Excel instances (>12) on a compute node, you need to run the workbook in user interactive sessions to avoid Excel automation errors. You may set HPC_ATTATCHTOSESSION to True or Try in Excel service registration file to let the service hosts run in a user interactive session. If so, you need to make sure there is already a RDP session for the same RunAs user on the compute nodes.

    Please check this link for usage comparison among HPC_CREATECONSOLE, HPC_ATTACHTOCONSOLE and HPC_ATTATCHTOSESSION. You may choose HPC_CREATECONSOLE, and this needs additional node configurations as described here. Creating console would save the manual effort to RDP for specific user after a node restart. Also note, if using HPC_CREATECONSOLE even with the value KEEP, the job should run exclusively on the node, which means no two jobs could run at the same time on the same node.

    1 person found this answer helpful.
    0 comments No comments

1 additional answer

Sort by: Most helpful
  1. Aleksi Sivonen 21 Reputation points
    2021-07-26T10:47:18.43+00:00

    Hello,

    Thanks for the fast and comprehensive reply this was exactly what I was looking for!

    0 comments No comments