On which core on a multi core CPU is the ISR called?
The answer is that the inbound Interrupt does not connect directly to any core in a multicore architecture (given your question asks about Intel and ARM).

For the Intel CPU architecture models (I don't work on ARM), when first powered up there is no mapping configured so all interrupts (and indeed boot code) runs on processor zero. 
Once virtualization is initialized then the rules change drastically. 

Interrupts arrive at an I/O processing unit and are 'mapped' in hardware to the required processor. That map definition could map all interrupts to a single core (which then could move an interrupt to a virtualized ISR on another core), or map various interrupts directly to certain cores.  

A good overall example is Intel VTD on i7 where interrupts are handled by the Northbridge implementation:

 

A good document to start with is this which walks through the mapping of both interrupts and DMA for the i7. 

Depending on what software is running (RTOS vs Virtualization kernel) the mapping of interrupts will vary.
An excellent paper on an RTOS implementation in Linux is here.