Description
In the fall of 2014, my coeditors Coray Colina, Eric Jankowski, and I organized a group of sessions on the topic of software engineering for the molecular sciences at the annual meeting of the American Institute of Chemical Engineers. Soon thereafter, we received an inquiry from the publisher asking if we would be interested in producing a book on the topic. I had previously taught a course on Scientific and Technical Computing at the University of Texas at Austin, and it had been on my mind to produce a book suitable to accompany that course. My approach was to give my students at least a taste of proficiency in a variety of topics and to find 20% of the information on key topics that were used 80% of the time. In editing this volume, we set out to recruit authors who were both sufficiently knowledgeable in an area and proficient communicators; people who were passionate about these topics and who could explain them well. We asked these authors to write their responses from the following perspective: “If you could give a junior researcher only a single lecture or chapter of notes on a topic, what you would tell them?”
There are two ways in which you can read this book: (1) Cover to cover, and you will gain enough knowledge to be a well-rounded computational researcher and will have a good idea of what the computing terrain looks like and will know where to turn; or (2) Choose chapters as a quick-start guide for various technologies as you discover you need them. When the time comes to go further, follow the references as a starting point. If you are already an enthusiastic scientist or engineer and don’t have a lot of experience coding, this should at least be a quick guide to the tools that your colleagues use and give you enough of a taste that you can speak with them intelligently about computation.
This is a technology book, and the process of composing it involved a poignant use of technology. Some chapters were written using MS Word, some with LaTeX, and others with Google Docs. The journey of writing the book has involved the challenges of managing a project team across three continents and several time zones. Documents were shared using Google Drive and meetings were held using Skype. Technology, being a universal constant in a world that does not share a common language, traditions, and so on, brings us together.
In any new endeavor, we struggle to find guides, ostensible mentors, as well as known wizards—people and resources who can and will help us to accomplish what we set out to do. I owe the deepest debt of gratitude to my team of colleagues at the Texas Advanced Computing Center. In particular, Luke Wilson and John Lockman were my copilots the two times I taught the course, and I relied heavily on their depth of experience. A shout out to Yaakoub El Khamra for his never-ending generosity both at work and in contributing his chapter on OpenMP; Carlos Rosales for helping me find answers to the many technical questions; Robert McLay for taking me ever deeper into systems configuration; and John Cazes for keeping me on track through it all. Finally, I thank my coeditors and contributors for believing in my project and bringing this book into existence. I could not have done it without you!
Frank T. Willmore
Level Zero Design