DAG files are needed for Ethereum proof-of-work system: https://github.com/ethereum/wiki/wiki/Ethash-DAG
However are these files necessary for non-mining clients e.g. geth full nodes that do not mine?
the DAG is needed for the mining (POW).
when you start up your node from scratch, mining will only start once the DAG is built for the current epoch.
from the DOC :
Automatic DAG generation is turned on and off when mining is controlled from the console. It is also turned on by default if geth is launched with the --mine option. Note that clients share a DAG resource, so if you are running multiple instances of any client, make sure automatic dag generation is switched on in at most one client.
To generate the DAG for an arbitrary epoch:
geth makedag For instance geth makedag 360000 ~/.ethash. Note that ethash uses ~/.ethash (Mac/Linux) or ~/AppData/Ethash (Windows) for the DAG so that it can shared between clients.
epoche = 30000 blocks, a 125-hour window.
so DAG is not necessary for nodes that didn't mine