Heterogenous and Asymmetric Computing's differences
Heterogenous computing as opossite to homogenous or symmetric means that processing units differ, which is exactly the same as asymmetric (which is just not symmetric).
But there are more usage differences - asymmetric computing (processing) is more about different CPUs which are used to perform assigned tasks, in embedded systems this is by design, in general purpose by executing in given context, commonly about "local" environment.
Heterogenous is used to talk about tasks computed on different processing units (CPU, GPU and dedicated hardware), also used to describe distributed systems where processing takes place on totally random devices connected.

To make it full - symmetric means exactly the same vector, while homogenous is less strict and requires the results to be the same among devices (the same floating point representation), but does not require exact devices.