According to the Documentation page for CellPrint,
With a text-based front end, CellPrint[cell] does the same as applying Print to the contents of cell.
Via ParallelTable we are working without a FrontEnd:
ParallelTable[Print@$FrontEnd, {1}];
(kernel 4) Null
AFAIK, the absence of a FrontEnd is equivalent to a "text-based front end".
This means that the usage of CellPrint within ParallelTable isn't justified, and we should use Print instead:
ParallelTable[Print[1], {2}];
(kernel 4) 1
(kernel 3) 1
EDIT:
As Michael E2 stresses in the comment, the current behavior isn't a bug, and it is in full accord with the above-cited Documentation statement:
The docs say that Print is applied to the cell contents. The cell contents of the cell produced by CellPrint[1] are BoxData["1"] (look at Cell > Show Expression in a regular kernel/FE). –
Michael E2
I'd like to parallelly construct cells (possibly dynamically updating ones) and output render them on the front-end.
If you really need to print cells into your evaluation Notebook from parallel subkernels, you need them to have access to your interactive FrontEnd. By default, they don't have access to this FrontEnd. It may be possible however to access it via MathLink, as Oleksandr R. seemingly claims here and here. It is worth creating a separate question on it.
It is also possible to develop your own parallelization framework as I did it here.
But if you need only dynamically update a cell in your Notebook, you can make a Cell with a Dynamic expression showing the current value of a variable shared between all parallel subkernels (use SetSharedVariable to create it).
"Print"cells tagged with the subkernel ID. Per the docs,$FrontEndis either aFrontEndObjectorNull, and the two options discussed for interfaces are "notebook" and "text-based." I do not see a statement in the Documentation that is directly contradicted, even if the docs are not complete and lucid on every point (as we well know they are not on many points). – Michael E2 Dec 22 '21 at 16:36BoxData[1]is the expected behavior? My point is that according to the cited Documentation statementCellPrintmust work exactly asPrintin a subkernel, but it doesn't. – Alexey Popkov Dec 22 '21 at 18:01Printis applied to the cell contents. The cell contents of the cell produced byCellPrint[1]areBoxData["1"](look at Cell > Show Expression in a regular kernel/FE). – Michael E2 Dec 22 '21 at 18:07bugstag and included your comment in my answer. – Alexey Popkov Dec 22 '21 at 18:18