What is the purpose of the cluster module in Node.js, and how do you use it?

The cluster module allows you to take advantage of multi-core systems by creating multiple worker processes that can share server ports. This enables better utilization of CPU resources. Example of using the cluster module:

const cluster = require('cluster');
const http = require('http');
const numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  for (let i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('exit', (worker, code, signal) => {
    console.log(`Worker ${worker.process.pid} died`);
  });
} else {
  http.createServer((req, res) => {
    res.writeHead(200);
    res.end('Hello, world!');
  }).listen(8000);
}