<commit_before><commit_msg>Diffusion: Add a simple README to demonstrate basic benchmark setup<commit_after># Devito examples and performance benchmarks

## Diffusion

A simple example demonstrating how to solve the 2D diffusion equation
using Devito's `Operator` API can be found in
`example_diffusion.py`. The example also includes demo implementations
using more traditional methods, including pure Python, vectorized
NumPy and a vectorized symbolic implementation using SymPy's
`lambdify()` functionality. For a visual demonstration and comparison
between pure Python and NumPy, for example, run:
```
python example_diffusion.py run -m python numpy --show
```
The above runs highlight the performance gains from using NumPy's
array vectorization, but the baseline test is still fairly small. To
demonstrate Devito's performance in relation to NumPy please run:
```
python example_diffusion.py run -m numpy devito --spacing 0.001 --timesteps 500
```

### Benchmarking and plotting

The diffusion example also provides a benchmarking mode that depends
on the [opescibench](https://github.com/opesci/opescibench) utility
package. As an example, on the benchmarking architecture you can run
the following command to generate performance data:
```
python example_diffusion.py bench -m numpy lambdify devito --spacing 0.001 -t 500 --resultsdir='results'
```
This will store the generated performance data in a sub-directory `results`, which can then be used to create a comparison plot with:
```
python example_diffusion.py plot -m numpy lambdify devito --spacing 0.001 -t 500 --resultsdir='results' --plotdir='plots'
```
{'fraction_non_alphanumeric': 0.07164916615194565, 'fraction_numerical': 0.013588634959851761, 'mean_word_length': 5.303501945525292, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 1, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5586738', 'n_tokens_mistral': 450, 'n_tokens_neox': 397, 'n_words': 203}