hardware parallelism denotes a broader concept and means how many computing or I/O resources you have available to do parallel operations.
For computing resources, this may be the available CPUs on your system. However that is only an exact measure, when your JVM is on a non virtualized, uniform multi core system.
In reality available processors may be shared in a virtual environment, may not have the same feature set, may be multi threaded, or share memory interfaces (NUMA).
For I/O resources it means the storage subsystem and how many requests it can do in parallel (e.g. the number of harddisks), plus, the I/O channel bandwidth.
For estimating your available "hardware parallelism" it is important to know which is the limiting factor for your workload. If I/O is not the problem, the task is called CPU bound or I/O bound otherwise. See my answer on Choosing optimal number of Threads for parallel processing of data. In this answer I also proposed the idea of using an adaptive algorithm to chose the number of threads.