Also if we process the cube with max parallel =8 or 16 we are able to query dashboard but slower than expected.
So there are a couple of potential issues, but this might be the source of your problem. Are you using a tabular or multi-dimensional model? I'm guessing by your description that maybe this is a multi-dimensional model.
By default if you do not set the MaxParallel setting the server will run as much in parallel as possible in order to finish the processing operation as fast as possible which can consume most of the resources on the system not leaving anything for queries to run at the same time. On a 16 "cpu" server I would look at setting the MaxParallel to 4 or lower since most processing operations will often spin up a read and write thread, so this should leave 8 cores free to answer queries. In reality it's not quite as simple as this and since you are not seeing the CPU spiking to 100% the CPU might not be your bottleneck it could be the read/write speed of your storage system. But even if it is the storage system that is the bottleneck, reducing the parallelism is probably the best way to free up resources to allow queries to run during processing operations. This will slow down your processing, but it should allow queries to run without being too much slower than usual.